Az egyszerû diszkrét skalár típus az Integer. Az Integer egy 64 biten reprezentált elõjeles típus. 32 bites rendszerben használva is a 64 bites reprezentácíót használja az Afnix. Ha ennél nagyobb számot szeretnénk tárolni, akkor a Relatif típust lehet használni.
Az alapértelmezett integer literál forma a decimális jelölés. A mínusz jel jelzi a negatív számokat. Lehet használni hexadecimális ill. bináris jelölést, 0x ill. 0x prefixxel. A jelölésben a jobb olvashatóság érdekében alkalmazhatunk aláhúzás jelet.
Az Integer érték a literál jelölést felhasználva jön létre egy implicit Integer példány felhasználásával. Az Integer osztálynak vannak beépített konstruktorai, az alapértelmezett konstruktor létrehoz egy Integer objektumot és nullára inicializálja, a többi konstruktor egy Integer, Real, Character vagy String értéket vesz alapul.
Hexadecimális vagy bináris jelölés használatánál ügyelni kell a negatív Integer értékekre. A 0x_8000_0000_0000_0000 a legkisebb negatív érték.
A standard aritmetikai operátorok használhatók beépített operátorként.
+ | 3 | 4 |
- | 3 | 4 |
- | 3 | |
* | 3 | 4 |
/ | 4 | 2 |
Beépített objektumként az Integer objektumhoz tartoznak különbözõ beépített metódusok. Az alábbi példa mutatja ezeket a metódusokat.
Az összehasonlító operátorok hasonlóképpen mûködnek. A különbség, hogy mindig egy Boolean értékkel térnek vissza.
Az aritmetikai metódusokhoz hasonlóan az összehasonlító operátorok is támogatva vannak metódusként is.
A Relatif vagy nagy-szám típus egy Integer végtelen precizitással. Hasonlóképpen mûködik, mint az Integer, de végtelen hosszúságú számokkal is. A Relatif jelölésére r vagy R suffixet használhatunk.
A Real osztály a lebegõpontos számok reprezentálására szolgál. A reprezentáció rendszerfüggõ, de alapvetõen az IEEE 754-1985 szabványban megfogalmazott dupla 64 bites lebegõpontos reprezentációt követi. A Real támogat minden operációt, amit az Integer.
Az AFNIX két fajta literál reprezentációt támogat a Real esetében. Az elsõ a szokásos tizedespontos forma, a második a tudományos forma.
A Real számok konstruálása hasonlóképpen történik, mint az Integer esetében, az alapértelmezett konstrukor 0.0-ra inicializálja az értéket. A beépített operátorok, metódusok is hasonlóak az Integer esetében leírtakhoz.
A Character reprezentálása a Unicode szabványban megadott 31 bites reprezentáció szerint történik (ISO 10646).
A szokásos aposztrófos jelölést használhatjuk a karakterek megadására.
Minden a Unicode kódszetben megadott karaktert támogatja az AFNIX. A Character konstruálása a megadott Character literál alapján vagy egy explicit Character példány alapján történik. Az alapértelmezett konstruktor egy null Charactert hoz létre. A többi konstruktor egy Integer, Character vagy String értéket vesz alapul. Itt a String lehet egy sima idézõjeles karakter vagy az U+ hexadecimális jelõlés. Például az U+40 String a @ karaktert jelöli.
A Character olyan, mint egy Integer, a 0 0x7FFFFFFF tartományon. A Character atitmetika egyszerûbb, mint az Integer aritmetika és nincs túlcsordulás ellenzõrzés. Az aritmetikai operátorok egy Integer értéket vesznek paraméterül.
Az Integerhez hasonlóan itt is használhatjuk a Character objektum metódusait.
A Character objektumnál használhatunk még más metódusokat is, ezek fõleg konverzióra szolgálnak.
A String objektum az egyik legfontosabb beípített objektum az AFNIX-ban, a String egy Unicode karakterekbõl álló vektor. A szokásos dupla idézõjeles jelölést használhatjuk a Stringek megadására.
Bármilyen literál objektumot használhatunk String konstruálására. Ez azt jelenti, hogy Integer, Real, Boolean ill. Character objektumok érvényesek String konstruálásakor. Az alapértelmezett konstruktor egy null Stringet állít elõ.
A String esetében is különbözõ beépített metódusok állnak rendelkezésünkre.
Ebben a fejezetben a beépített tároló objektumok leírása található, iterálható objektumoké, mint a Cons, List és a Vektor, ill. speciális objektumoké, mint a Queue és a Bitset.
Eredetileg a Cons objektum (vagy cons elem) volt a Lisp vagy Scheme rendszerek alap objektuma. A cons elem a List felépítõ blokkja. A cons elem tartalmaz egy objektumot és egy mutatót a következõ cons elemre. A cons elem objektumát car-nak a mutatót cdr-nek nevezik.
Az alapértelmezett konstruktor egy cons elemet hoz létre, nil objektummal inicializálva. A konstruktor kaphat egy v. több paramétert is.
A konstruktor bármilyen fajta objektumot kaphat paraméterül, ez alapján beszélhetünk homogén ill. heterogén listéról.
A Cons objektumnak is léteznek különbözõ beépített metódusai.
A List beépített objektum kétirányú listák használatát teszi lehetõvé, támogatja az elõre ill. visszafele történõ iterációt.
A List a Conshoz hasonlóan konstruálható, de a Consal ellentétben a List lehet nulla hosszúságú.
A List objektum metódusai hasonlóak a Cons metódusaihoz.
A Vector beépített objektum objektumok indexelt tömbjének használatát teszi lehetõvé. A Vector objektumban is van lehetõség mindkét irányban történõ iterációra.
A Vector konstruálása is a Conshoz hasonlóan történik, az alapértelmeztt konstruktor egy Vectort hoz létre 0 objektummal.
A Vector objektum metódusai a Cons metódusaihoz hasonlóan használhatóak.
A Set beépített objektum, objektumok halmazban történõ tárolását teszi lehetõvé. A Set objektum is iterálható, de csak elõrefele. A Set egyik tulajdonsága, hogy egy objektum csupán egyszer szerepelhet, egy objektum kétszeres hozzáadása esetén csak egy objektumot kapunk eredményül. A Set konstruálása hasonlóképpen történik, mint a Vector konstruálása, az alapértelmezett konstruktor egy Set-et hoz létre 0 objektummal.
A Set metódusai hasonlóak a Vector metódusaihoz.