CAD programy 4M
(cond (tvrzení1 výsledek1 ...) ...)
Funkce cond je podmínkou. Pokud je předchozí příklad vyhodnocen jako pravda, aplikuje se cond.
Tato funkce je běžně používanou podmínkou v LISP. Pokud je příkaz vyhodnocen jako pravda, provedou se všechny funkce, které následují v tomto bloku a výsledek poslední funkce se vrátí.
- Pokud tvrzení1 je vyhodnoceno jako nil, LISP pokračuje k tvrzení2. Pokud je pravdivé, postupuje se stejným způsobem.
-Pokud nepravda (nebo nil), LISP pokrčuje v hledání pravdivého tvrzení.
-Pokud nejsou nalezena žádná pravdivá tvrzení, vrací se nil.
-Pokud v bloku nejsou žádné výsledné funkce, výsledek podmínky se vrací.
PŘÍKLAD:
U předešlého příkladu funkce cond se podívala na (zeropx) a rozhodla, zda to není nil. Pokud ano, vrací se nula (0). Pokud není přesouvá se k dalšímu testu, (T, nil). Tento test je už pravdivý (T) a vrátil by se nil. Podívejte se na následující setqs příkladů podmínky výše.
V dalším příkladu, pokud je d nastaveno na hodnotu 5, LISP vrátí řetězec "Je rovno." Je-li nastavena na hodnotu 6, vrátí hodnotu "Větší než."
Tato funkce je běžně používanou podmínkou v LISP. Pokud je příkaz vyhodnocen jako pravda, provedou se všechny funkce, které následují v tomto bloku a výsledek poslední funkce se vrátí.
- Pokud tvrzení1 je vyhodnoceno jako nil, LISP pokračuje k tvrzení2. Pokud je pravdivé, postupuje se stejným způsobem.
-Pokud nepravda (nebo nil), LISP pokrčuje v hledání pravdivého tvrzení.
-Pokud nejsou nalezena žádná pravdivá tvrzení, vrací se nil.
-Pokud v bloku nejsou žádné výsledné funkce, výsledek podmínky se vrací.
PŘÍKLAD:
Kód | Results |
---|---|
(cond ((zerop x) 0) | (T nil)) |
U předešlého příkladu funkce cond se podívala na (zeropx) a rozhodla, zda to není nil. Pokud ano, vrací se nula (0). Pokud není přesouvá se k dalšímu testu, (T, nil). Tento test je už pravdivý (T) a vrátil by se nil. Podívejte se na následující setqs příkladů podmínky výše.
Kód | Results |
---|---|
(setq x 8) | nil |
(setq x 0) | 0 |
V dalším příkladu, pokud je d nastaveno na hodnotu 5, LISP vrátí řetězec "Je rovno." Je-li nastavena na hodnotu 6, vrátí hodnotu "Větší než."
Code |
---|
(cond ((< d 5) "Less than") |
((= d 5) "Equal to") |
((> d 5) "Greater than") |
) |