(acad _strlsort list) | ||
Argumenty: | ||
list
|
- seznam řetězců, které mají být seřazeny | |
Popis: | ||
- seřadí seznam řetězců v abecedním pořádku | ||
Návratová hodnota: | ||
- list - v abecedním pořádku | ||
- nil - v případě nedostatku paměti nebo špatném typu seznamu |
||
Příklady: | ||
(setq mos '("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")) | ||
vrací ("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec") | ||
(acad_strlsort mos) | ||
vrací ("Apr" "Aug" "Dec" "Feb" "Jan" "Jul" "Jun" "Mar" "May" "Nov" "Oct" "Sep") |
(assoc element alist) | ||
Argumenty: | ||
element
|
- klíč elementu v asociačním seznamu | |
alist
|
- prohledávaný asociační seznam | |
Popis: | ||
- hledá prvek v asociačním seznamu | ||
Návratová hodnota: | ||
- nalezená hodnota z asociačního seznamu - proběhlo-li vše v pořádku | ||
- nil - není nalezena klíčová hodnota |
||
Příklady: | ||
(setq al '((name box) (width 3) (size 4.7263) (depth 5))) | ||
vrací ((NAME BOX) (WIDTH 3) (SIZE 4.7263) (DEPTH 5)) | ||
(assoc 'size al) | ||
vrací (SIZE 4.7263) | ||
(assoc 'weight al) | ||
vrací nil |
(foreach name list [expr...]) | ||
Argumenty: | ||
name
|
- proměnná zastupující prvky v seznamu (vždy jeden) | |
list
|
- procházený seznam | |
expr
|
- výraz, který má být vypočítán pro každý element v seznamu list | |
Popis: | ||
- vypočítá výraz pro všechny členy seznamu | ||
Návratová hodnota: | ||
- výsledek posledního výrazu | ||
- nil - nejsou-li specifikovány žádné výrazy | ||
Příklady: | ||
Tisk všech elementů v seznamu: | ||
(foreach n '(a b c) (print n)) | ||
vrací A | ||
vrací B | ||
vrací C C | ||
Vytiskne všechny prvky A B C a vrátí C |
(last list) | ||
Argumenty: | ||
list
|
- seznam | |
Popis: | ||
- zjištění posledního elementu v seznamu | ||
Návratová hodnota: | ||
- atom nebo seznam | ||
Příklady: | ||
(last '(a b c d e)) | ||
vrací E | ||
(last '(a b c (d e))) | ||
vrací (D E) |
Podívej se na funkci vl-list-length.
Podívej se na funkce quote, vl-list* a vl-list-length.
(listp item) | ||
Argumenty: | ||
item
|
- libovolný atom, seznam nebo výraz | |
Popis: | ||
- zjištění zda je položka seznam | ||
Návratová hodnota: | ||
- T - jestliže je položka item seznam | ||
- nil - v opačném případě | ||
Příklady: | ||
(listp '(a b c)) | ||
vrací T | ||
(listp 'a) | ||
vrací nil | ||
(listp 4.343) | ||
vrací nil | ||
(listp nil) | ||
vrací T |
||
(listp (setq v1 '(1 2 43))) | ||
vrací T |
Podívej se na funkce vl-list* a vl-list-length.
(mapcar function list1... listn) | ||
Argumenty: | ||
function
|
- funkce | |
list1... listn
|
- jeden nebo více seznamů | |
- počet seznamů musí odpovídat počtu argumentů požadovaných funkcí function | ||
Popis: | ||
- vrátí seznam výsledků vypočítaných funkcí provedenou nad individuálními elementy seznamu nebo seznam je dodán jako argument funkci | ||
Návratová hodnota: | ||
- seznam | ||
Příklady: | ||
(setq a 10 b 20 c 30) | ||
vrací 30 | ||
(mapcar '1+ (list a b c)) | ||
vrací (11 21 31) | ||
odpovídá sekvenci příkazů: | ||
(1+ a) | ||
(1+ b) | ||
(1+ c) |
(reverse list) | ||
Argumenty: | ||
list
|
- seznam | |
Popis: | ||
- přehodí pořadí prvků v seznamu | ||
Návratová hodnota: | ||
- seznam | ||
Příklady: | ||
(reverse '((a) b c)) | ||
vrací (C B (A)) |
(subst newitem olditem lst) | ||
Argumenty: | ||
newitem
|
- atom nebo seznam | |
olditem
|
- atom nebo seznam | |
list
|
- seznam | |
Popis: | ||
- vyhledá v seznamu všechny staré položky (olditem) a vrátí kopii seznamu, kde jsou nalezené staré položky nahrazeny novými položkami (newitem) | ||
Návratová hodnota: | ||
- změněný seznam - v případě, že existovali položky olditem | ||
- původní seznam - v případě, že nebyla nalezena ani jedna položka olditem | ||
Příklady: | ||
(setq sample '(a b (c d) b)) | ||
vrací (A B (C D) B) | ||
(subst 'qq 'b sample) | ||
vrací (A QQ (C D) QQ) | ||
(subst 'qq 'z sample) | ||
vrací (A B (C D) B) | ||
(subst 'qq '(c d) sample) | ||
vrací (A B QQ B) | ||
(subst '(qq rr) '(c d) sample) | ||
vrací (A B (QQ RR) B) | ||
(subst '(qq rr) 'z sample) | ||
vrací (A B (C D) B) |
(vl-consp list-variable) | ||
Argumenty: | ||
list-variable
|
- seznam | |
Popis: | ||
- určí je-li nebo není-li seznam rovný hodnotě nil | ||
- funkce pozná zda proměnná obsahuje definici seznamu | ||
Návratová hodnota: | ||
- T - parametr je seznam různý od nil | ||
- nil - v opačném případě | ||
Příklady: | ||
_$ (vl-consp nil) | ||
vrací nil | ||
_$ (vl-consp t) | ||
vrací nil | ||
_$ (vl-consp (cons 0 "LINE")) | ||
vrací T |
(vl-every predicate-function list [list]...) | ||||
Argumenty: | ||||
predicate-function
|
- testovací funkce, libovolná funkce, která akceptuje tolik argumentů kolik je seznamů list a vrátí T pro každou uživatelem specifikovanou podmínku | |||
- možné tvary funkce: | ||||
- jméno funkce | ||||
- '(LAMBDA (A1 A2) ...) | ||||
- (FUNCTION (LAMBDA (A1 A2) ...)) | ||||
list
|
- testovaný seznam | |||
Popis: | ||||
- ověří zda výrok je pravdivý pro každou kombinaci elementů | ||||
Návratová hodnota: | ||||
- T - když predicate-function vrací hodnoty různé od nil pro každou kombinaci elementů | ||||
- nil - v opačném případě | ||||
Příklady: | ||||
Zjištění zda existují prázdné soubory v aktuálním adresář: | ||||
_$ (vl-every '(lambda (fnm) (> (vl-file-size fnm) 0)) | ||||
(vl-directory-files nil nil 1) ) | ||||
vrací T | ||||
Ověří zda je seznam v proměnné TEST seřazen podle "<=": | ||||
_$ (setq nlst (list 0 2 pi pi 4)) | ||||
vrací (0 2 3.14159 3.14159 4) | ||||
_$ (vl-every '<= nlst (cdr nlst)) | ||||
vrací T | ||||
_$ (vl-every '= '(1 2) '(1 2 3)) | ||||
vrací T | ||||
$ (vl-every '= '(1 2) '(1 3)) | ||||
vrací nil |
Podívej se na funkci list.
Podívej se na funkci vl-string->list.
Podívej se na funkci listp.
(vl-member-if predicate-function list) | |||
Argumenty: | |||
predicate-function
|
- testovací funkce, libovolná funkce, která akceptuje jeden argument a vrátí T pro každou uživatelem specifikovanou podmínku | ||
- možné tvary funkce: | |||
- jméno funkce | |||
- '(LAMBDA (A1 A2) ...) | |||
- (FUNCTION (LAMBDA (A1 A2) ...)) | |||
list
|
- testovaný seznam | ||
Popis: | |||
- určí je-li výrok pravdivý pro jeden z členů seznamu | |||
Návratová hodnota: | |||
- seznam - začíná prvkem, který splnil podmínku a pokračuje do konce původního seznamu | |||
- nil - žádný element nesplnil podmínku |
|||
Příklady: | |||
Nakreslení čáry: | |||
_$ (command "_.LINE" '(0 10) '(30 50) nil) | |||
vrací nil | |||
Vrácení asociačního seznamu popisujícího entitu, je-li entita čára: | |||
_$ (vl-member-if '(lambda (x) (= (cdr x) "AcDbLine")) | |||
(entget (entlast))) | |||
vrací ((100 . "AcDbLine") (10 0.0 10.0 0.0) (11 30.0 50.0 0.0) (210 0.0 0.0 1.0)) |
Podívej se na funkci vl-member-if-not.
Podívej se na funkci vl-member-if.
(vl-position symbol list) | |||
Argumenty: | |||
symbol
|
- libovolná značka AutoLISPu | ||
list
|
- true seznam | ||
Popis: | |||
- zjistí index specifikované položky seznamu | |||
Návratová hodnota: | |||
- integer - index pozice symbolu symbol v seznamu list | |||
- nil - symbol symbol neexistuje v seznamu | |||
Příklady: | |||
_$ (setq stuff (list "a" "b" "c" "d" "e")) | |||
vrací ("a" "b" "c" "d" "e") | |||
_$ (vl-position "c" stuff) | |||
vrací 2 |
(vl-remove element-to-remove list) | |||
Argumenty: | |||
element-to-remove
|
- hodnota elementu, který má být vyjmut | ||
- může být libovolný datový typ LISPu | |||
list
|
- seznam | ||
Popis: | |||
- vymaže prvky ze seznamu | |||
Návratová hodnota: | |||
- seznam list mimo prvky odpovídající prvkům k vymazání element-to-remove | |||
Příklady: | |||
_$ (vl-remove pi (list pi t 0 "abc")) | |||
vrací (T 0 "abc") |
(vl-remove-if predicate-function list) | |||
Argumenty: | |||
predicate-function
|
- testovací funkce, libovolná funkce, která akceptuje jeden argument a vrátí T pro každou uživatelem specifikovanou podmínku | ||
- možné tvary funkce: | |||
- jméno funkce | |||
- '(LAMBDA (A1 A2) ...) | |||
- (FUNCTION (LAMBDA (A1 A2) ...)) | |||
list
|
- testovaný seznam | ||
Popis: | |||
- získá všechny prvky uvedeného seznamu, které selžou při testovací funkci | |||
Návratová hodnota: | |||
- seznam obsahující všechny prvky ze seznamu list, u kterých funkce predicate-function vrací nil | |||
Příklady: | |||
_$ (vl-remove-if 'vl-symbolp (list pi t 0 "abc")) | |||
vrací (3.14159 0 "abc") |
(vl-remove-if-not predicate-function list) | |||
Argumenty: | |||
predicate-function
|
- testovací funkce, libovolná funkce, která akceptuje jeden argument a vrátí T pro každou uživatelem specifikovanou podmínku | ||
- možné tvary funkce: | |||
- jméno funkce | |||
- '(LAMBDA (A1 A2) ...) | |||
- (FUNCTION (LAMBDA (A1 A2) ...)) | |||
list
|
- testovaný seznam | ||
Popis: | |||
- získá všechny prvky uvedeného seznamu, které projdou přes testovací funkci | |||
Návratová hodnota: | |||
- seznam obsahující všechny prvky ze seznamu list, u kterých funkce predicate-function vrací ne-nilovou hodnotu | |||
Příklady: | |||
_$ (vl-remove-if-not 'vl-symbolp (list pi t 0 "abc")) | |||
vrací (T) |
Podívej se na funkci vl-member-if.
(vl-some predicate-function list [list]...) | |||
Argumenty: | |||
predicate-function
|
- testovací funkce, libovolná funkce, která akceptuje tolik argumentů kolik je seznamů list a vrátí T pro každou uživatelem specifikovanou podmínku | ||
- možné tvary funkceí: | |||
- jméno funkce | |||
- '(LAMBDA (A1 A2) ...) | |||
- (FUNCTION (LAMBDA (A1 A2) ...)) | |||
list
|
- testovaný seznam | ||
Popis: | |||
- kontroluje zda není výrok nil pro jednu kombinaci elementů | |||
Návratová hodnota: | |||
- hodnotu výroku - když predicate-function vrací hodnotu různou od nil | |||
- nil - v opačném případě | |||
Příklady: | |||
Příklad ověří zda seznam nlst (číselný seznam) má rovnající se prvky v následujícím pořadí: | |||
_$ (setq nlst (list 0 2 pi pi 4)) | |||
vrací (0 2 3.14159 3.14159 4) | |||
_$ (vl-some '= nlst (cdr nlst)) | |||
vrací T |
(vl-sort list comparison-function) | |||||
Argumenty: | |||||
list
|
- seznam | ||||
comparison-function
|
- porovnávací funkce, libovolná funkce, která akceptuje dva argumenty a vrátí T (nebo libovolnou ne-nilovou hodnotu), když první argument předchází druhý v řadícím pořádku | ||||
- možné tvary funkce: | |||||
- jméno funkce | |||||
- '(LAMBDA (A1 A2) ...) | |||||
- (FUNCTION (LAMBDA (A1 A2) ...)) | |||||
Popis: | |||||
- seřadí prvky seznamu podle podmínky dané ve funkci comparison-function | |||||
Návratová hodnota: | |||||
- seřazený seznam list podle podmínek z funkce comparison-function. Duplicitní elementy jsou eliminovány ze seznamu | |||||
Příklady: | |||||
Seřazení seznamu čísel: | |||||
_$ (vl-sort '(3 2 1 3) '<) | |||||
vrací (1 2 3) ; | |||||
Seřazení seznamu 2D bodů podle Y souřadnce: | |||||
_$ (vl-sort '((1 3) (2 2) (3 1)) | |||||
(function (lambda (e1 e2) | |||||
(<(cadr e1) (cadr e2)) ) ) ) | |||||
vrací ((3 1) (2 2) (1 3)) |
(vl-sort-i list comparison-function) | |||||
Argumenty: | |||||
list
|
- seznam | ||||
comparison-function
|
- porovnávací funkce, libovolná funkce, která akceptuje dva argumenty a vrátí T (nebo libovolnou ne-nilovou hodnotu), když první argument předchází druhý v řadícím pořádku | ||||
- možné tvary funkce: | |||||
- jméno funkce | |||||
- '(LAMBDA (A1 A2) ...) | |||||
- (FUNCTION (LAMBDA (A1 A2) ...)) | |||||
Popis: | |||||
- seřadí prvky seznamu podle podmínky dané ve funkci comparison-function a vrátí indexy prvků | |||||
Návratová hodnota: | |||||
- seřazený seznam hodnot indexů prvků ze seznamu list podle podmínek z funkce comparison-function. Duplicitní elementy jsou eliminovány ze seznamu | |||||
Poznámka: | |||||
- pozor index prvního prvku je 0 !!! | |||||
Příklady: | |||||
Seřazení seznamu písmen sestupně: | |||||
_$ (vl-sort-i '("a" "d" "f" "c") '>) | |||||
vrací (2 1 3 0) | |||||
Seřazení seznamu čísel vzestupně: | |||||
_$ (vl-sort-i '(3 2 1 3) '<) | |||||
vrací (2 1 3 0) | |||||
Seřazení seznamu 2D bodů podle Y souřadnice: | |||||
_$ (vl-sort-i '((1 3) (2 2) (3 1)) | |||||
(function (lambda (e1 e2) | |||||
(<(cadr e1) (cadr e2)) ) ) ) | |||||
vrací (2 1 0) | |||||
Seřazení seznamu symbolů: | |||||
_$ (vl-sort-i | |||||
'(a d c b a) | |||||
'(lambda (s1 s2) | |||||
(<(vl-symbol-name s1) (vl-symbol-name s2)) ) ) | |||||
vrací (4 0 3 2 1) |
Podívej se na funkci vl-list->string.