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:
- Számok: korlátlan hossz, pontos aritmetika. (NUMBER)
- Szövegek (string): szintén korlátlan méret. (TEXT)
- Kompaundok: összetett adatszerkezetek (rekordok), mezőnevek nélkül. (COMPAUND)
- Listák: Rendezett összessége azonos típusú elemeknek. (LIST)
- Táblák: általánosított tömbök, melyek kulcs-elem párokat tartalmaznak. (TABLE)
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.