| 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)) | |||||
| ) | |||||