Použití funkce cond míst funkce abs: | |||||
(cond | |||||
((minusp a) (- a)) | |||||
(t a) | |||||
) | |||||
Je-li hodnota v proměnné a záporná je převedena na kladné číslo, jinak je vráceno rovnou kladné číslo. | |||||
Použití funkce cond, aby simulovala výstup funkce case (jako v PASCALU): | |||||
(cond | |||||
((= s "Y") 1) | |||||
((= s "y") 1) | |||||
((= s "N") 0) | |||||
((= s "n") 0) | |||||
(t nil) | |||||
) | |||||
Je-li řetězec s roven "Y" nebo "y" vrátí funkce 1, je-li řetězec roven "N" "n" vrátí funkce 0. Nenastane-li ani jeden z případů je výsledek rovný nil. |
Mějme definované proměné: | |||||
(setq f1 '(a b c)) | |||||
(setq f2 '(a b c)) | |||||
(setq f3 f2) | |||||
Porovnání f1 a f3: | |||||
(eq f1 f3) | |||||
funkce vrátí nil - protože f1 a f3, i když obsahují stejné hodnoty neukazují na stejný seznam | |||||
Porovnání f3 a f2 | |||||
(eq f3 f2) | |||||
funkce vrátí T - protože f3 a f2 ukazují na stejný seznam |
Podívej se na funkci equal pro porovnání funkce!
Mějme definované proměné: | |||||
(setq f1 '(a b c)) | |||||
(setq f2 '(a b c)) | |||||
(setq f3 f2) | |||||
(setq a 1.123456) | |||||
(setq b 1.123457) | |||||
Porovnání f1 a f3: | |||||
(eq f1 f3) | |||||
funkce vrátí T | |||||
Porovnání f3 a f2: | |||||
(eq f3 f2) | |||||
funkce vrátí T | |||||
Porovnání a a b: | |||||
(eq a b) | |||||
funkce vrátí nil - hodnoty se liší o 0.000001 | |||||
Porovnání a a b: | |||||
(eq a b0.000001) | |||||
funkce vrátí T - je definována tolerance 0.000001 |
(repeat int [expr...]) | ||
Argumenty: | ||
int
|
- kladné celé číslo | |
expr
|
- jeden nebo více atomů nebo výrazů | |
Popis: | ||
- opakovaně vyhodnocuje výraz, počet opakování určuje argument int | ||
Návratová hodnota: | ||
- hodnota posledního výrazu nebo atomu | ||
- nil - pokud není specifikována expr |
||
Příklady: | ||
(setq a 10 b 100) |
||
vrací 100 | ||
vrací 500 | ||
po skončení je a=50, b=500 | ||
(repeat 100 "Me" "You") |
||
vrací "You" |
Následující úsek programu volá 10x funkci some-func, během volání je zvětšována hodnota pomocné proměné test: | |||||
(setq test 1) | |||||
(while (<= test 10) | |||||
(some-func test) | |||||
(setq test (1+ test)) | |||||
) |