Az ABC programozási nyelv

Típusok, típuskonstrukciók

Típusok, típuskonstrukciók

A nyelv erősen típusos, mégsem kellenek deklarációk. A típust a kontextusból lehet megállapítani. A típusokat könnyű használni, mivel nagyon magas-szintűek.
Öt típus áll rendelkezésre:

A számok

A számok korlátlan hosszúak lehetnek:

>>> WRITE 2**1000
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376

A nem pontos számok kerekítését a rendszer végzi:
>>> WRITE root 2
1.414213562373095

A szövegek

A szövegek szintén korlátlan hosszúak lehetnek:

>>> PUT ("ha " ^^ 3) ^ ("ho " ^^ 3) IN laugh
>>> WRITE laugh
ha ha ha ho ho ho

>>> WRITE #laugh
18

>>> PUT "Hello! "^^1000 IN greeting
>>> WRITE #greeting
7000

>>> WRITE greeting|4
Hell

>>> WRITE greeting@4|3
lo!

A kompaundok

A kompaundok olyanok mint a rekordok, vagy struktúrák, csak nem tartalmaznak mezőneveket:

>>> PUT ("Square root of 2", root 2) IN c
("Square root of 2", 1.414213562373095)

>>> PUT c IN name, value
>>> WRITE name
Square root of 2

>>> WRITE value
1.414213562373095

A listák

A listák egy bizonyos típus rendezett értékeit tartalmazzák (azonos értékek többször is előfordulhatnak):

>>> WRITE {1..10}
{1; 2; 3; 4; 5; 6; 7; 8; 9; 10}

>>> PUT {1..10} IN l
>>> REMOVE 5 FROM l
>>> INSERT 4 IN l
>>> INSERT pi IN l
>>> WRITE 1
{1; 2; 3; 3.141592653589793; 4; 4; 6; 7; 8; 9; 10

A táblák

A táblák a tömbökre hasonlítanak:

>>> PUT {} IN tel
>>> PUT 4054 IN tel["Jennifer"]
>>> PUT 4098 IN tel["Timo"]
>>> PUT 4134 IN tel["Guido"]
4054

A táblák kulcs értékek szerint vannak rendezve:
>>> WRITE tel
{["Guido"]: 4134; ["Jennifer"]: 4054; ["Timo"]: 4098}

A keys függvény egy listával tér vissza:
>>> WRITE keys tel
{"Guido"; "Jennifer"; "Timo"}

>>> FOR name IN keys tel: WRITE name, ":", tel[name] /
Guido: 4134
Jennifer: 4054
Timo: 4098

A vonatok

A vonatok (train) nem kulcsszó, hanem egy összefoglaló nev. Egy szimbolikus elnevezése minden olyan dolognak, aminek több eleme van, és ezeket az elemeket egymás után lehet venni. Például a tömb, lista, felsorolási típus, halmaz, stb. Képletesen értve a vonat olyan elemek halmaza, amelyikbol egyesevel lehet venni az elemeket (vagonok). Előnye, hogy nem kell például for ciklus feltételében 'length'-ekkel foglalkozni.