LISP - 条件构造


LISP 中的cond结构最常用于允许分支。

cond的语法是 -

(cond   (test1    action1)
   (test2    action2)
   ...
   (testn   actionn))

cond 语句中的每个子句都包含一个条件测试和要执行的操作。

如果 cond 之后的第一个测试 test1 被评估为 true,则执行相关操作部分 action1,返回其值并跳过其余子句。

如果 test1 的计算结果为 nil,则控制权移至第二个子句,而不执行 action1,并且遵循相同的过程。

如果没有一个测试条件被评估为 true,则 cond 语句返回nil。

例子

创建一个名为 main.lisp 的新源代码文件并在其中键入以下代码 -

(setq a 10)
(cond ((> a 20)
   (format t "~% a is greater than 20"))
   (t (format t "~% value of a is ~d " a)))

当您单击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是 -

value of a is 10

请注意,第二个子句中的t确保执行最后一个操作(如果没有其他操作)。

lisp_decisions.htm