

| (eval expr) | ||
| Argumenty: | ||
| expr | - výraz, který má být vyhodnocen | |
| Popis: | ||
| - zjistí výsledek AutoLISPovské funkce | ||
| Návratová hodnota: | ||
| - výsledek vyhodnocení | ||
| Příklady: | ||
| Nejprve nastavíme proměnné: | ||
| (setq a 123) | ||
| (setq b 'a) | ||
| Vyhodnocení výrazů: | ||
| (eval 4.0) | vrací 4.0 | |
| (eval (abs -10)) | vrací 10 | |
| (eval a) | vrací 123 | |
| (eval b) | vrací 123 | |


| (lambda arguments expr...) | ||||||
| Argumenty: | ||||||
| arguments | - argumenty předané výrazu | |||||
| expr | - výraz AutoLISPu | |||||
| Popis: | ||||||
| - definice anonymní funkce | ||||||
| Poznámka: | ||||||
| - používá se když není potřeba definovat funkci (pomocí defun) | ||||||
| - umožňuje umístit funkci na místo použití | ||||||
| - často se používá ve spojení s funkcemi apply a/nebo mapcar | ||||||
| Návratová hodnota: | ||||||
| - hodnota poslední expr | ||||||
| Příklady: | ||||||
| Použití lambda funkce v konzole Visual LISPu: | ||||||
| _$ (apply '(lambda (x y z) | ||||||
| (* x (- y z)) | ||||||
| ) | ||||||
| '(5 20 14) | ||||||
| ) | ||||||
| vrací 30 | ||||||
| _$ (setq counter 0) | ||||||
| (mapcar '(lambda (x) | ||||||
| (setq counter (1+ counter)) | ||||||
| (* x 5) | ||||||
| ) | ||||||
| '(2 4 -6 10.2) | ||||||
| ) | ||||||
| vrací (10 20 -30 51.0) | ||||||

| (progn [expr]...) | |||||
| Argumenty: | |||||
| expr | - jeden nebo víc AutoLISP výrazů | ||||
| Popis: | |||||
| - vyhodnocuje každý výraz sekvenčně a vrací hodnotu posledního výrazu | |||||
| Poznámka: | |||||
| - používá se, když potřebujeme vypočítat více výrazů a je očekáván pouze jeden výraz | |||||
| Návratová hodnota: | |||||
| - výsledek posledního výrazu | |||||
| Příklady: | |||||
| Funkce if provede jeden výraz then v případě splnění podmínky, potřebujeme-li provést dva výrazy použijeme funkci progn: | |||||
| (if (= a b) | |||||
| (progn | |||||
| (princ "\nA = B ") | |||||
| (setq a (+ a 10) b (- b 10)) | |||||
| ) | |||||
| ) | |||||

| (trace [function...]) | ||||||||
| Argumenty: | ||||||||
| function | - jméno funkce, není-li uvedeno nemá funkce trace žádný efekt | |||||||
| Popis: | ||||||||
| - pomůcka při ladění v AutoLISPu, nastaví flag pro specifikovanou funkci | ||||||||
| - když je specifikovaná funkce volaná - trace zobrazí informace o funkci a výsledek funkce | ||||||||
| - informace jsou zobrazeny do příkazové řádky AutoCADu nebo trace okna VisualLISPu | ||||||||
| Poznámka: | ||||||||
| - na vypnutí flagu trace je nutné použít funkci untrace | ||||||||
| Návratová hodnota: | ||||||||
| - jméno poslední funkce poslané trace | ||||||||
| - nil - neobsahuje-li funkce trace žádné argumenty | ||||||||
| Příklady: | ||||||||
| Definujeme funkci se jménem foo a nastavíme trace flag pro tuto funkci | ||||||||
| (defun foo (x) (if (> x 0) (foo (1- x)))) | ||||||||
| (trace foo) | ||||||||
| Vyvoláme funkci foo | ||||||||
| (foo 3) | ||||||||
| Entering (FOO 3) | ||||||||
| Entering (FOO 2) | ||||||||
| Entering (FOO 1) | ||||||||
| Entering (FOO 0) | ||||||||
| Result: nil | ||||||||
| Result: nil | ||||||||
| Result: nil | ||||||||
| Result: nil | ||||||||
| Vynulování trace flagu - zavoláme untrace | ||||||||
| (untrace foo) | ||||||||


| (defun-q sym ([arguments] [/ variables...]) expr...) | ||
| Argumenty: | ||
| sym | - pojmenování funkce | |
| arguments | - jména argumentů funkce | |
| / variables | - jména jednoho nebo více lokálních proměnných funkce, pozor / musí být oddělen mezerou | |
| expr  | - libovolný výraz (posloupnost výrazů) AutoLISPu | |
| Poznámka: | ||
| - AutoLISP obsahuje tuto funkci v důsledku zpětné kompatibility | ||
| - nejsou-li deklarovány žádné argumenty ani lokální proměnné musí se uvést prázdné závorky | ||
| - v případě duplikované deklarace argumentu nebo jména funkce AutoLISP použije první a ignoruje ostatní deklarace | ||
| Popis: | ||
| - definování funkce jako seznam | ||
| Příklady: | ||
| _$ (defun-q my-startup (x) (print (list x))) | ||
| vrací MY-STARTUP | ||
| _$ (my-startup 5) | ||
| vrací (5) (5) | ||
| Použití funkce defun-q-list-ref pro zobrazení struktury my-startup: | ||
| _$ (defun-q-list-ref 'my-startup) | ||
| vrací ((X) (PRINT (LIST X))) | ||
Podívej se na defun-q-list-ref a defun-q-list-set.

| (defun-q-list-ref 'function ) | ||
| Argumenty: | ||
| 'function  | - jméno funkce | |
| Popis: | ||
| - funkce zobrazí strukturu funkce definované funkcí defun-q | ||
| Návratová hodnota: | ||
| - seznamová definice funkce | ||
| - nil - není-li argument seznam | ||
| Příklady: | ||
| Definujeme funkci za použití defun-q funkce: | ||
| _$ (defun-q my-startup (x) (print (list x))) | ||
| vrací MY-STARTUP | ||
| Použití funkce defun-q-list-ref pro zobrazení seznamové struktury my-startup: | ||
| _$ (defun-q-list-ref 'my-startup) | ||
| vrací ((X) (PRINT (LIST X))) | ||
Podívej se na defun-q a defun-q-list-set.





