You are on page 1of 1

AutoLISP

vény a kiválasztott kifejezés értékével tér vissza; amennyiben az egyebkent-kif


hiányzik és a feltetel-kif értéke nil, az if függvény nil értékkel tér vissza. Példaként:

(if (= 77 3) "IGEN!!" "nem.") eredménye "nem."


(if (= 6 (+ 4 2)) "IGEN!:") eredménye "IGEN”
(if (= 1 (+ 9 4)) "IGEN:!") eredménye nil.

Mivel az if függvénynek csupán három argumentuma lehet, amiből az egyik ép-


pen a tesztkifejezés, a második a T állapotra kiértékelt argumentum, a harmadik
pedig a nil logikai állapotra kiértékelt argumentum, több argumentum kiértékelése
lehetetlen. Erre használjuk a progn függvényt, amely úgymond egy argumentum
alá gyűjti az egyes logikai elágazás alá kerülő, akármilyen nagyszámú kifejezést.
Például:

(if (> 3 2)
(progn
(setq wer 12)
(command „line” pt1 pt2)
(command „zoom” „e” „”)
)
(setq wer 789)
)

A cond függvény az AutoLISP programnyelv elsődleges feltételes függvénye.


Szintaxisa:

(cond (<feltetel1> <eredmeny1>. . .) (<feltetel2> <eredmeny2>...) . . .)

Ez a függvény argumentumként tetszőleges számú listát fogad el. Minden


lista első elemét kiértékeli (a megadott sorrendben), egészen addig, amíg valame-
lyik értéke nem különbözik a nil értéktől. Ekkor kiértékeli a listában a teljesülő felté-
telt követő kifejezéseket, és az allista utolsó kifejezésének értékével tér vissza.
Amennyiben az allistában csak egyetlen kifejezés szerepel (azaz az eredmeny
hiányzik), a függvény a feltétel kiértékelésének eredményével tér vissza. A cond
függvény esetszétválasztásos (case típusú) függvényként használható. Általános
gyakorlat a T használata utolsó (alapértelmezés szerinti) feltetel kifejezésként.
Nézzünk egy példát. Legyen adott az s-szimbólumban egy, a felhasználótól vá-
laszként kapott karakterlánc. Az alábbi függvény leellenőrzi a felhasználó által
adott választ, és 1-gyel tér vissza, ha a karakterlánc I vagy i, illetve 0-val, ha a vá-
lasz N vagy n; egyéb esetekben a függvény eredménye nil.
Például:

29

You might also like