Imagine Logo parancslista a Kovács Mihály Országos Grafikus Programozási Versenyhez1

Tartalom

A lista a verseny követelményeinek figyelembevételével készült, nem meríti ki az Imagine Logo teljes parancskészletét.

[U] = Utasítás

[K] = Kifejezés

[U/K] = Kontextustól függően lehet utasítás vagy kifejezés is

1Forrás: Imagine Logo súgó

Rajzolás (I, II, III, IV)

előre :m | e :m [U]

A teknőc :m lépésnyit lép előre.

Példa

előre 100

hátra :m | h :m [U]

A teknőc :m lépésnyit lép hátra.

Példa

hátra 100

jobbra :a | j :a [U]

A teknőc :a foknyit fordul jobbra (pozíciója nem változik).

Példa

jobbra 90

balra :a | b :a [U]

A teknőc :a foknyit fordul balra (pozíciója nem változik).

Példa

balra 90

irány [K]

Értéke a teknőc jelenlegi fordulási szöge fokban. 0 = "felfelé", óramutató járásával megegyező irányba növekszik.

Példa

mutat irány
;0
jobbra 90
mutat irány
;90

irány! :d [U]

A teknőc fordulási szöge :d fok lesz. 0 = "felfelé", óramutató járásával megegyező irányba növekszik.

Példa

;0˚-ról indulva

jobbra 90
irány! 75

mutat irány
;75

irány! 37
jobbra 50
mutat irány
;87

poz [K]

Értéke a teknőc jelenlegi pozíciója listaként: [x y]

Példa

mutat poz
;[0 0]

előre 100
jobbra 90
előre 30

mutat poz
;[30 100]

poz! :p [U]

A teknőc a megadott :p pozícióra ugrik (a kezdő- és végpont közt vonalat rajzolva, ha a toll lent van). :p egy kételemű számlista: [x y]

Példa

;irány 0˚, pozíció [0 0]

poz! [100 200]
előre 30
mutat poz
;[100 230]

xpoz [K]

Értéke a teknőc aktuális pozíciója az X (vízszintes) tengelyen.

Példa

mutat xpoz
;0

előre 100
jobbra 90
előre 30

mutat xpoz
;30

xpoz! :x [U]

A teknőc átugrik az X (vízszintes) tengelyen a megadott :x koordinátára (az Y tengelyen nem mozdul el). A kezdő- és végpont között vonalat húz, ha a toll lent van.

Példa

;irány 0˚, pozíció [0 0]

xpoz! 100
jobbra 90
előre 30
mutat xpoz
;130

ypoz [K]

Értéke a teknőc aktuális pozíciója az Y (függőleges) tengelyen.

Példa

mutat ypoz
;0

előre 100
jobbra 90
előre 30

mutat ypoz
;100

ypoz! :y [U]

A teknőc átugrik az Y (függőleges) tengelyen a megadott :y koordinátára (az X tengelyen nem mozdul el). A kezdő- és végpont között vonalat húz, ha a toll lent van.

Példa

;irány 0˚, pozíció [0 0]

ypoz! 100
előre 30
mutat ypoz
;130

törölképernyő | törölkép [U]

A teknőc törli a rajzlapot, majd a kezdőpontjára ugrik (nem húz vonalat).

Példa

előre 100
jobbra 90
előre 100

;Képernyő törlése
törölképernyő

haza [U]

A teknőc a kezdőpontjára ugrik (nem húz vonalat).

Példa

;Kezdőpont [0 0]

előre 100
jobbra 90
előre 100
mutat poz
;[100 100]

haza
mutat poz
;[0 0]

címke :sz [U]

A teknőc kirajzolja a megadott :sz szöveget.

Kezdő- és végpozíció: a szöveg bal felső sarka

Példa

;Kezdőpont [0 0]

címke "Szia!
mutat poz
;[0 0]

címke2 :sz [U]

A teknőc kirajzolja a megadott :sz szöveget.

Kezdőpozíció: bal felső sarok

Végpozíció: jobb felső sarok

Példa

;Kezdőpont [0 0]

címke2 "Szia!
mutat poz
;[33 0]

lenyomat [U]

A teknőc készít egy lenyomatot saját magáról.

Példa

lenyomat
;A rajzlapon megjelenik a teknőc lenyomata

tölt [U]

A teknőc kitölti a tartományt, amin áll az aktuális töltőszínnel

Példa

;Négyzet rajzolása
ismétlés 4
[
 előre 100
 jobbra 90
]

;Mozgás a négyzeten belülre
tollatfel
előre 50
jobbra 90
előre 50
tollatle

;Négyzet kitöltése
tölt

kör :d [U]

A teknőc rajzol egy kitöltetlen kört, amelynek középpontja a teknőc aktuális pozíciója, átmérője :d.

Példa

;50 sugarú kör rajzolása (átmérő=100)
kör 100

töltöttkör :d [U]

A teknőc rajzol egy az aktuális töltőszínnel kitöltött kört, amelynek középpontja a teknőc aktuális pozíciója, átmérője :d.

Példa

;50 sugarú, töltőszínnel kitöltött kör rajzolása (átmérő=100)
töltöttkör 100

pontméret :d [U]

A teknőc rajzol egy az aktuális tollszínnel kitöltött kört, amelynek középpontja a teknőc aktuális pozíciója, átmérője :d.

Példa

;50 sugarú, tollszínnel kitöltött kör rajzolása (átmérő=100)
pontméret 100

ellipszis :el [U]

A teknőc rajzol egy ellipszist a megadott lista alapján, melynek középpontja a teknőc aktuális pozíciója.

:el felépítése: [a b d1 d2] (d1 és d2 opcionális).

Az ellipszis szélessége és magassága a és b.

Ha d1 és d2 meg van adva, az ellipszis a d1 szögtől a d2 szögig lesz megrajzolva (fokban).

Példa

;100 széles, 50 magas ellipszis rajzolása
ellipszis [100 50]

;50 sugarú negyedkör rajzolása (jobb felső szegmens, átmérő=100)
ellipszis [100 100 0 90]

töltöttellipszis :el [U]

A teknőc rajzol egy az aktuális töltőszínnel kitöltött ellipszist a megadott lista alapján, melynek középpontja a teknőc aktuális pozíciója.

:el felépítése: [a b d1 d2] (d1 és d2 opcionális).

Az ellipszis szélessége és magassága a és b.

Ha d1 és d2 meg van adva, az ellipszis a d1 szögtől a d2 szögig lesz megrajzolva (fokban).

Példa

;100 széles, 50 magas kitöltött ellipszis rajzolása
töltöttellipszis [100 50]

;50 sugarú derékszögű körcikk rajzolása (körlap jobb felső negyede, átmérő=100)
töltöttellipszis [100 100 0 90]

sokszög :szl [U]

A teknőc rajzol egy az aktuális töltőszínnel kitöltött sokszöget az :szl lista alapján.

A teknőc sorban halad a lista elemein:

  • Páratlan sorszámú elemeknél előrehalad a megadott értékkel.
  • Páros sorszámú elemeknél jobbra fordul a megadott értékkel.
  • A végén visszaugrik a kezdőpozícióra.

Példa

;10 és 20 oldalhosszúságú kitöltött téglalap rajzolása
sokszög [10 90 20 90 10]

;50 oldalhosszúságú oldalán álló kitöltött szabályos háromszög rajzolása
sokszög [0 30 50 120 50]

;Kitöltött T betű rajzolása
sokszög [50 -90 30 90 20 90 80 90 20 90 30 -90 50]

Toll (I, II, III, IV)

toll [K]

Értéke toll aktuális állapota (szövegként).

Lehetséges értékei az állapotnak megfelelően: "tollatle "tollatfel "tollradír "tollváltó

Példa

tollatle
mutat toll
;tollatle

tollatfel
mutat toll
;tollatfel

tollatle | tl [U]

A toll "tollatle állapotba kerül. A teknőc rajzol mozgás közben.

Példa

;Négyzet rajzolása a bal oldalának kihagyásával
tollatfel
előre 100
jobbra 90
tollatle

ismétel 3
[
 előre 100
 jobbra 90
]

tollatfel | tf [U]

A toll "tollatfel állapotba kerül. A teknőc nem rajzol mozgás közben.

Példa

;Négyzet rajzolása a bal oldalának kihagyásával
tollatfel
előre 100
jobbra 90
tollatle

ismétel 3
[
 előre 100
 jobbra 90
]

tollradír | trd [U]

A toll "tollradír állapotba kerül. A teknőc kiradírozza a rajzolt pontokat, ahol halad.

Példa

;Négyzet rajzolása majd bal oldalának kiradírozása
ismétel 4
[
 előre 100
 jobbra 90
]

tollradír
előre 100

tollszín | tsz [K]

Értéke a toll aktuális színe (szöveg vagy RGB-lista).

Példa

tollszín! "sárga
mutat tollszín
;sárga

tollszín! [114 34 201]
mutat tollszín
;[114 34 201]

töltőszín | tlsz [K]

Értéke a toll aktuális töltőszíne (szöveg vagy RGB-lista).

Példa

töltőszín! "sárga
mutat töltőszín
;sárga

töltőszín! [114 34 201]
mutat töltőszín
;[114 34 201]

tollszín! :sz | tsz! :sz [U]

Átállítja a toll aktuális színét és töltőszínét :sz-re.

Példa

tollszín! "sárga

mutat tollszín 
;sárga

mutat töltőszín
;sárga

töltőszín! :sz | tlsz! :sz [U]

Átállítja a toll aktuális töltőszínét :sz-re.

Példa

töltőszín! "sárga

mutat töltőszín
;sárga

tollvastagság | tv [K]

Értéke a toll aktuális vastagsága.

Példa

tollvastagság! 3
mutat tollvastagság
;3

tollvastagság! :v | tv! :v [U]

Átállítja a toll aktuális vastagságát :v-re.

Példa

tollvastagság! 3
mutat tollvastagság
;3

pontszín [K]

Értéke annak a pontnak a színe, amelyen a teknőc áll.

Példa

;fehér háttér, üres lap, fekete tollszín

mutat pontszín
;fehér

előre 100
hátra 50
mutat pontszín
;fekete

Ciklusok (I, II, III, IV)

ismétlés :n :ul | ism :n :ul [U]

:ul utasításlista végrehajtása :n-szer.

Példa

;100 oldalhosszúságú négyzet rajzolása

ismétlés 4
[
 előre 100
 jobbra 90
]

ciklus :v :int :ul | cikl :v :int :ul [U]

:ul utasításlista többszöri végrehajtása a megadott :int intervallum alapján.

:int 2 vagy 3 elemű számlista: [kezd vég lépés] (lépés opcionális, alapértelmezett értéke 1).

:v a ciklusváltozó neve (:ul-ben használható), kezd-től megy vég-ig lépés-sel növekedve.

Példa

;1-től 100-ig az egész számok kiírása hármasával számolva

ciklus "i [1 100 3]
[
 mutat :i
]

ciklusegyenként :v :l :ul | ciklegy :v :l :ul [U]

:ul végrehajtása :l minden elemére. Az aktuális elem :v nevű változóban van tárolva (:ul-ben használható).

Példa

;Minden teknőc nevének kiírása
ciklusegyenként "t mindenteknőc
[
 mutat :t
]

;10, 5, 23 és 52 hosszúságú vonalak rajzolása egymással 10 fokos szöget bezárva
ciklusegyenként "m [10 5 23 52]
[
 előre :m
 jobbra 10
]

amíg :k :ul [U]

:ul folyamatos végrehajtása amíg :k értéke igaz. (:k kifejezés listaként!)

Példa

;Keressük meg előre az első nem fekete egész pontot
tollatfel
amíg [pontszín="fekete]
[
 előre 1
]

Elágazások (I, II, III, IV)

ha :felt :ul [U]

:ul utasításlista végrehajtása, ha :felt igaz.

Példa

;Ha fekete ponton állunk, forduljunk jobbra 90 fokkal
ha pontszín="fekete
[
 jobbra 90
]

;Tipikus felhasználási eset: rekurzió elvarrása (:n rekurziós szint)
ha :n>1
[
 rekurzió :n-1
]

hakülönben :felt :uli :ulh | hak :uli :ulh [U]

:uli utasításlista végrehajtása ha :felt igaz, különben :ulh utasításlista végrehajtása.

Példa

;Ha fekete ponton állunk, forduljunk jobbra, különben balra 90 fokkal
hakülönben pontszín="fekete
[
 jobbra 90
]
[
 balra 90
]

;Rekurzió elvarrása befejezőművelettel
hakülönben :n>1
[
 rekurzió :n-1
]
[
 előre 100
]

elágazás :e :l [U/K]

Az első :e-nek megfelelő eset végrehajtása/kiértékelése :l-ben. :l felépítése:

  • Minden eset egy azonosítóból (1 vagy több szó, :e megfeleltetéséhez) és egy utasításlistából vagy kifejezésből áll (listaként).
  • Ezek :l-ben egymás után következnek.
  • Az esetek után még egy utasításlista vagy kifejezés a "különben" eset (opcionális).

Példa

;Egyjegyű :n prím?

;Utasításként:
elágazás :n
[
 2
 [
  mutat "|páros prím|
 ]

 3 5 7
 [
  mutat "|páratlan prím|
 ]

 [
  mutat "|nem prím|
 ]
]

;Kifejezésként:
mutat elágazás :n
[
 2 ["|páros prím|]
 3 5 7 ["|páratlan prím|]
 ["|nem prím|]
]

Több teknőc irányítása (I, II, III)

aktív :t [U]

Az aktív teknőc átállítása a :t nevű teknőcre. Ha :t lista, minden elemének megfelelő teknőc aktív lesz.

Példa

;Mozgás a t2 teknőccel
aktív "t2
előre 100

;Mozgás a t1 és t2 teknőcökkel egyszerre
aktív [t1 t2]
előre 100

kér :t :l [U/K]

:l szöveg, utasításlista vagy kifejezés végrehajtása vagy kiértékelése :t teknőccel vagy teknőcökkel (párhuzamosan).

Példa

;Utasításként: lépjünk előre 100-at t1-gyel és t2-vel
kér [t1 t2]
[
 előre 100
]

;Kifejezésként: kérdezzük le t2 irányát
;Megegyező kifejezés: t2'irány
kér "t2 [irány]

;Kérdezzük le a :t változóban tárolt teknőc pozícióját
kér :t "poz

kéregyenként :t :ul [U]

:ul szöveg vagy utasításlista végrehajtása :t teknőccel vagy teknőcökkel (egymás után a megadott sorrendben).

Példa

;t1 és t2 egymás után lépjen előre 100-at
kéregyenként [t1 t2]
[
 előre 100
 várj 1000
]

végrehajt :l [U/K]

:l szöveg, utasításlista vagy kifejezés végrehajtása vagy kiértékelése az aktív teknőccel vagy teknőcökkel (párhuzamosan). Tipikusan változóban tárolt utasítások végrehajtására van használva.

Példa

;Utasításként: lépjünk előre 100-at az aktív teknőcökkel
végrehajt [előre 100]

;Kifejezésként: a :k változóban tárolt kifejezés kiértékelése és az eredmény kiírása
mutat végrehajt :k

egyenként :l [U]

:sz végrehajtása az aktív teknőccel vagy teknőcökkel (egymás után a megadott sorrendben).

Példa

;Egymás után az aktív teknőcök lépjenek előre 100-at
egyenként
[
 előre 100
 várj 1000
]

kiaktív [K]

Értéke a jelenleg aktív teknőc neve. Ha több is van, az aktív teknőcök nevének listája.

Példa

aktív "t2
mutat kiaktív
;t2

aktív [t1 t2]
mutat kiaktív
;[t1 t2]

mindenteknőc | mindtek [K]

Értéke az aktív lapon lévő teknőcök neveinek listája.

Példa

;A lapon lévő teknőcök: t1, t2, t3
mutat mindenteknőc
;[t1 t2 t3]

Animációk (I, II, III)

várj :n [U]

Futás szüneteltetése :n ezredmásodpercre.

Példa

;Négyzet megrajzolása oldalanként szünettel
ismétlés 4
[
 előre 100
 jobbra 90
 várj 1000
]

betöltképsor :f [K]

:f forrás betöltése képsorként. Forrásmegadásnál használható a $ szimbólum az aktuális projekt könyvtárának utvonalaként.

Példa

;$képek\teknőc2.lgf = [projektmappa]\képek\teknőc2.lgf
alak! betöltképsor "|$képek\teknőc2.lgf|

betöltháttérkép :ks [U]

:ks képsor vagy forrás betöltése a lap háttérképeként. Forrásmegadásnál használható a $ szimbólum az aktuális projekt könyvtárának utvonalaként.

Példa

;$képek\háttérkép.jpg = [projektmappa]\képek\háttérkép.jpg
betöltháttérkép "|$képek\háttérkép.jpg|
lap2'betöltháttérkép lap1'háttérkép

alak [K]

A teknőc aktuális alakja képsorként.

Példa

;t2 alakja egyezzen meg t1 alakjával
t2'alak! t1'alak

alak! :ks [U]

:ks képsor vagy forrás betöltése a a teknőc alakjaként. Forrásmegadásnál használható a $ szimbólum az aktuális projekt könyvtárának utvonalaként.

Példa

;$képek\teknőc2.lgf = [projektmappa]\képek\teknőc2.lgf
t1'alak! "|$képek\teknőc2.lgf|
t2'alak! t1'alak

alakméret [K]

Az aktív teknőc méretének szorzója. 1=alapméret, ha a szélesség és magasság szorzója nem egyezik meg (az alak torzított), az érték egy lista: [szélesség magasság]

Példa

alakméret! 2
mutat alakméret
;2

alakméret! [0.5 1.5]
mutat alakméret
;[0.5 1.5]

alakméret! :m [U]

Az aktív teknőc méretének szorzójának átállítása. 1=alapméret, ha :m egy szám, akkor a szélesség és magasság szorzója is :m lesz, ha :m lista: [szélesség magasság]

Példa

alakméret! 2
mutat alakméret
;2

alakméret! [0.5 1.5]
mutat alakméret
;[0.5 1.5]

látható [K]

Logikai érték, igaz, ha a teknőc látható, különben hamis.

Példa

látható! "hamis
mutat látható
;hamis

látható! "igaz
mutat látható
;igaz

látható! :l [U]

Ha :l igaz, a teknőc látható lesz, különben el lesz rejtve.

Példa

látható! "hamis
mutat látható
;hamis

látható! "igaz
mutat látható
;igaz

elrejtteknőc | elrejt [U]

Teknőc elrejtése. (Megegyezik a látaható! "hamis utasítással.)

Példa

elrejtteknőc
mutat látható
;hamis

mutatteknőc | mutattek [U]

Teknőc láthatóvá tétele. (Megegyezik a látható! "igaz utasítással.)

Példa

mutatteknőc
mutat látható
;igaz

animáció [K]

Logikai érték, igaz, ha a teknőc automatikus animációja be van kapcsolva, különben hamis.

Példa

animáció! "igaz
mutat animáció
;igaz

animáció! "hamis
mutat animáció
;hamis

animáció! :l [U]

A teknőc automatikus animációjának bekapcsolása, ha :l igaz, különben kikapcsolása.

Példa

animáció! "igaz
mutat animáció
;igaz

animáció! "hamis
mutat animáció
;hamis

képkocka [K]

Az alak aktuális képkockájának sorszáma. (Vigyázat! Ez nem az animáció aktuális képkockája, hanem az alak "állapota". Az animáció aktuális képkockájáért lásd a képkockaelem kifejezést.)

A sorszámozás 1-től kezdődik.

Példa

animáció! "igaz

;Az alak 1. animációja
képkocka! 1
mutat képkocka
;1

;Az alak 2. animációja
képkocka! 2
mutat képkocka
;2

képkocka! :n [U]

Az alak aktuális képkockája az :n. képkocka lesz. (Vigyázat! Ez nem az animáció aktuális képkockája, hanem az alak "állapota". Az animáció aktuális képkockájának átállításához lásd a képkockaelem! utasítást.)

A sorszámozás 1-től kezdődik.

Példa

animáció! "igaz

;Az alak 1. animációja
képkocka! 1
mutat képkocka
;1

;Az alak 2. animációja
képkocka! 2
mutat képkocka
;2

képkockaelem [K]

Az animáció aktuális képkockájának sorszáma (az alak aktuális képkockájának aktuális elemének sorszáma).

A sorszámozás 1-től kezdődik.

Példa

képkockaelem! 2
mutat képkockaelem
;2

képkockaelem! 1
mutat képkockaelem
;1

képkockaelem! :n [U]

A teknőc alakja az aktuális képkockájának :n. eleme lesz. (Vigyázat! ha az automatikus animáció be van kapcsolva, tovább fog ugrani a képkockához tartozó késleltetés után.)

A sorszámozás 1-től kezdődik.

Példa

képkockaelem! 2
mutat képkockaelem
;2

képkockaelem! 1
mutat képkockaelem
;1

képkockamód [K]

Logikai érték, igaz ha a a teknőc aktuális alakját a megadott képkocka adja, hamis ha a teknőc irány befolyásolja.

Példa

képkockamód! "hamis
mutat képkockamód
;hamis

képkockamód! "igaz
mutat képkockamód
;igaz

képkockamód :l [U]

A teknőc képkockamódjának átállítása: ha :l igaz, a teknőc aktuális alakját a megadott képkocka adja, ha hamis, akkor pedig a teknőc iránya befolyásolja.

Példa

képkockamód! "hamis
mutat képkockamód
;hamis

képkockamód! "igaz
mutat képkockamód
;igaz

Változók (III, IV)

lokálisérték :v :e | lokért :v :e [U]

:v lokális változó beállítása :e értékre. Lokális változó az eljárás futásának befejeztéig elérhető.

Példa

lokálisérték "a 1
mutat :a
;1

lokálisérték "a "Szia!
mutat :a
;Szia!

globálisváltozó :v :e | globvál :v :e [U]

:v globális változó beállítása :e értékre. Globális változó elérhető marad, amíg az ki nem lesz törölve manuálisan.

Példa

globálisváltozó "a 1
mutat :a
;1

globálisváltozó "a "Szia!
mutat :a
;Szia!

növel :v :n [U]

:v globális vagy lokális változó növelése :n-nel. (:n opcionális, alapértelmezett értéke 1.)

Példa

lokálisérték "a 1
növel "a
mutat :a
;2

(növel "a 2)
mutat "a
;4

csökkent :v :n [U]

:v globális vagy lokális változó csökkentése :n-nel. (:n opcionális, alapértelmezett értéke 1.)

Példa

lokálisérték "a 5
csökkent "a
mutat :a
;4

(csökkent "a 2)
mutat "a
;2

vanilyen? :v [K]

Logikai érték, igaz, ha létezik :v nevű lokális vagy globális változó, különben hamis.

Példa

mutat vanilyen? "a
;hamis

lokálisérték "a 1
mutat vanilyen? "a
;igaz

értéke :v [K]

:v lokális vagy globális változó értéke (lecserélhető a kettőspontos kifejezésre, akkor érdemes használni, ha a változó neve önmagában is egy változó értéke).

Példa

lokálisérték "a 1
mutat értéke "a
;1

lokálisérték "v "a
mutat értéke :v
;1

Lista- és szövegkezelés (IV)

szó :sz1 :sz2 [K]

:sz1 és :sz2 szövegek összefűzése.

Példa

lokálisérték "gyümölcs "alma
mutat szó :gyümölcs "fa
;almafa

mondat :l1 :l2 [K]

:l1 és :l2 listák összefűzése

Példa

mutat mondat [t1 t2] [t3 t4]
;[t1 t2 t3 t4]

lista :e1 :e2 [K]

Értéke egy kételemű lista, amelynek első eleme :e1, második eleme :e2.

Példa

mutat lista 10 20
;[10 20]

elsőnek :e :l [K]

:e hozzáfűzése az :l listához vagy szöveghez első elemként. Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

Példa

mutat elsőnek 20 [30 40]
;[20 30 40]

mutat elsőnek "a "lma
;alma

utolsónak :e :l [K]

:e hozzáfűzése az :l listához vagy szöveghez utolsó elemként. Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

Példa

mutat utolsónak 40 [20 30]
;[20 30 40]

mutat utolsónak "a "alm
;alma

elsőnélküli :l | en :l [K]

:l lista vagy szöveg első elemének elhagyása (ha létezik). Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

Példa

lokálisérték "l [10 20]
lokálisérték "l elsőnélküli :l
mutat :l
;[20]

lokálisérték "l elsőnélküli :l
mutat :l
;[]

lokálisérték "l elsőnélküli :l
mutat :l
;[]

mutat elsőnélküli "alma
;lma

utolsónélküli :l | un :l [K]

:l lista vagy szöveg utolsó elemének elhagyása (ha létezik). Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

Példa

lokálisérték "l [10 20]
lokálisérték "l utolsónélküli :l
mutat :l
;[10]

lokálisérték "l utolsónélküli :l
mutat :l
;[]

lokálisérték "l utolsónélküli :l
mutat :l
;[]

mutat utolsónélküli "alma
;alm

elemsorszámnélküli :n :l | elemsn :n :l [K]

:l lista vagy szöveg :n. elemének elhagyása. Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

A sorszámozás 1-től kezdődik.

Példa

mutat elemsorszámnélküli 2 [10 20 30]
;[10 30]

mutat elemsorszámnélküli 3 "alma
;ala

elemnélküli :e :l | elemn :e :l [K]

:l listában vagy szövegben :e összes előfordulásának elhagyása. Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

Példa

mutat elemnélküli 0 [1 2 0 3 4 5 0 6]
;[1 2 3 4 5 6]

mutat elemnélküli "aa "almaafaalatt
;almflatt

elemtől :e :l [K]

Lista vagy szöveg :l értékeivel :e első előfordulásától kezdve. Ha :e nincs:l`-ben, az érték üres lista vagy szöveg. Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

Példa

mutat elemtől 4 [10 20 30 40 50 60 50 40 30 20 10]
;[40 50 60 50 40 30 20 10]

mutat elemtől "l "|Helló világ!|
;lló világ!

csere :k :l :e [K]

Lista vagy szöveg :l értékeivel, a :k. elem kicserélve :e-re. :k lehet intervallum: [kezd darab], ekkor :e is lista, kezd elemszámú elem :e 1. elemére lesz lecserélve, kezd+1 a 2. elemre, és így tovább egészen kezd+darab-1-ig. Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

A sorszámozás 1-től kezdődik.

Példa

mutat csere 3 [10 20 0 40 50] 30
;[10 20 30 40 50]

mutat csere "2 "abma "l
;alma

mutat csere [2 3] [10 70 80 90 50] [20 30 40]
;[10 20 30 40 50]

mutat csere [2 2] "abca "lm
;alma

megfordít :l [K]

:l lista vagy szöveg értékeinek sorrendjének megfordítása. Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

Példa

mutat megfordít [3 2 1]
;[1 2 3]

mutat megfordít "amla
;alma

összekever :l [K]

:l lista vagy szöveg elemeinek összekeverése. Az új lista vagy szöveg a kifejezés értéke, nem módosítja az eredeti változót.

Példa

mutat összekever [1 2 3 4]
;[3 1 4 2] (vagy más véletlenszerű sorrend)

mutat összekever "alma
;aaml (vagy más véletlenszerű sorrend)

! :l [K]

:l-ben lévő kettőspontos és zárójeles kifejezések kiértékelése. Az új lista a kifejezés értéke, nem módosítja az eredeti változót.

Példa

lokálisérték "a 2
mutat ! [1 :a (:a+1)]
;[1 2 3]

elemszám :l [K]

:l lista vagy szöveg elemszáma.

Példa

mutat elemszám [10 20 30]
;3

mutat elemszám "alma
;4

első :l [K]

:l lista vagy szöveg első eleme. (Megegyezik az elem 1 :l kifejezéssel.)

Példa

mutat első [10 20 30]
;10

mutat első "abcd
;a

utolsó :l [K]

:l lista vagy szöveg utolsó eleme. (Megegyezik az elem (elemszám :l) :l kifejezéssel.)

Példa

mutat utolsó [10 20 30]
;30

mutat utolsó "abcd
;d

elem :k :l [K]

:l lista vagy szöveg :k. eleme.

A sorszámozás 1-től indul.

Példa

mutat elem 2 [10 20 30]
;20

mutat elem 2 "abcd
;b

kiválaszt :l [K]

:l lista vagy szöveg egy véletlenszerű eleme.

Példa

mutat kiválaszt [10 20 30 40 50]
;40 (vagy más véletlenszerű elem)

mutat kiválaszt "abcde
;b (vagy más véletlenszerű elem)

Műveletek

Infix műveletek: + - * / < <= = <> > >=

és :a :b [K]

Logikai művelet, értéke igaz, ha :a és :b is igaz, különben hamis.

Példa

mutat és "igaz "igaz
;igaz

mutat és "igaz "hamis
;hamis

mutat és "hamis "igaz
;hamis

mutat és "hamis "hamis
;hamis

vagy :a :b [K]

Logikai művelet, értéke igaz, ha :a és :b közül legalább az egyik igaz, különben hamis.

Példa

mutat vagy "igaz "igaz
;igaz

mutat vagy "igaz "hamis
;igaz

mutat vagy "hamis "igaz
;igaz

mutat vagy "hamis "hamis
;hamis

nem :l [K]

Logikai művelet, értéke :l negáltja (igaznak hamis, hamisnak igaz).

Példa

mutat nem "igaz
;hamis

mutat nem "hamis
;igaz

egyenlő? :a :b | :a = :b [K]

Logikai érték, igaz, ha :a és :b egyenlő, különben hamis.

Példa

mutat egyenlő? 1 2
;hamis

mutat egyenlő? [1 2 3] [1 2 3]
;igaz

mutat 1 = 1
;igaz

mutat [1 2] = [3 4]
;hamis

nagyobb? :a :b | :a > :b [K]

Logikai érték, igaz, ha :a nagyobb, mint :b, különben hamis. Ha valamelyik paraméter szöveg, az összehasonlított értékek a paraméterek első karaktereinek ASCII-kódjai.

Példa

mutat nagyobb? 2 1
;igaz

mutat nagyobb? "alma 1
;igaz

mutat "alma > "körte
;hamis

mutat 1 > "alma
;hamis

kisebb? :a :b | :a < :b [K]

Logikai érték, igaz, ha :a kisebb, mint :b, különben hamis. Ha valamelyik paraméter szöveg, az összehasonlított értékek a paraméterek első karaktereinek ASCII-kódjai.

Példa

mutat kisebb? 2 1
;hamis

mutat kisebb? "alma 1
;hamis

mutat "alma < "körte
;igaz

mutat 1 < "alma
;igaz

összeg :a :b | :a + :b [K]

:a és :b összege.

Példa

mutat összeg 1 2
;3

mutat 3 + 4
;7

különbség :a :b | :a - :b [K]

:a és :b különbsége.

Példa

mutat különbség 3 2
;1

mutat 1 - 3
;-2

szorzat :a :b | :a * :b [K]

:a és :b szorzata.

Példa

mutat szorzat 3 5
;15

mutat 3 * -2
;-6

hányados :a :b | :a / :b [K]

:a és :b hányadosa.

Példa

mutat hányados 24 6
;4

mutat 15/-10
;-1.5

egészhányados :a :b | eh :a :b [K]

:a és :b egészosztásának hányadosa.

Példa

mutat egészhányados 37 7
;5

maradék :a :b | mod :a :b [K]

:a és :b egészosztásának maradéka.

Példa

mutat maradék 37 7
;2

mutat maradék 37 -7
;-5

mutat maradék -37 -7
;-2

mutat maradék -37 7
;5

egészrész :n [K]

:n egészrésze.

Példa

mutat egészrész 3.5
;3

mutat egészrész -4.91
;-4

kerekít :n [K]

:n egészre kerekítve.

Példa

mutat kerekít 4.23
;4

mutat kerekít 5.5
;6

mutat kerekít -6.5
;-7

absz :n [K]

:n abszolútértéke.

Példa

mutat absz 3.2
;3.2

mutat absz -4.7
;4.7

gyök :n [K]

:n négyzetgyöke.

Példa

mutat gyök 100
;10

hatvány :n [K]

Természetes alapú hatvány értéke (e:n)

Példa

mutat hatvány 3
;20.0855

ln :n [K]

:n természetes alapú (e-alapú) logaritmusa.

Példa

mutat ln 20.0855
;3

mutat ln hatvány 5
;5

sin :a [K]

:a szög (fok) szinusza.

Példa

mutat sin 0
;0

mutat sin 90
;1

cos :a [K]

:a szög (fok) koszinusza.

Példa

mutat cos 0
;1

mutat cos 180
;-1

tan :a | tg :a [K]

:a szög (fok) tangense. Nincs definiálva 90˚+k*180˚-ra (k egész szám).

Példa

mutat tan 0
;0

mutat tan 45
;1

arkusztangens :t | arctg :t [K]

Az a szög (fokban), amelynek tangense :t. Értékkészlete: [-90, 90].

Példa

mutat arkusztangens 0
;0

mutat arkusztangens 1
;45

Hasznos képletek

ak = ek*ln(a)

logab = ln(b)/ln(a)

n√a = a1/n

Egyéb

mutat :sz | kiír :sz [U]

:sz kiírása a kimenetre.

Példa

mutat "Szia!
;Szia!

eredmény :e [U]

:e visszaadása visszatérési értékként (az ezutáni utasítások nem lesznek végrehajtva).

Példa

eljárás plusz1 :a
 eredmény :a + 1
vége

;----

mutat plusz1 4
;5

stop [U]

Az aktuálisan futó eljárás megállítása.

Példa

amíg ["igaz]
[
 előre 1
 ha (véletlenszám 5)=3
 [
  stop
 ]
]

véletlenszám :n [K]

Értéke egy véletlenszerű egész szám 0 és :n-1 között, ha :n pozitív, :n+1 és 0 között, ha :n negatív.

Véletlen :v szám :a és :b között (:a:v:b): :a + véletlenszám (:b - :a + 1)

Példa

mutat véletlenszám 5
;3 (vagy más véletlenszerű szám 0 és 4 között)

mutat véletlenszám -5
;-3 (vagy más véletlenszerű szám -4 és 0 között)