- LISP 教程
- LISP - 首页
- LISP - 概述
- LISP - 环境
- LISP - 程序结构
- LISP - 基本语法
- LISP - 数据类型
- LISP - 宏
- LISP - 变量
- LISP - 常量
- LISP - 运算符
- LISP - 决策
- LISP - 循环
- LISP - 函数
- LISP - 谓词
- LISP - 数字
- LISP - 字符
- LISP - 数组
- LISP - 字符串
- LISP - 序列
- LISP - 列表
- LISP - 符号
- LISP - 向量
- LISP - 集合
- LISP - 树
- LISP - 哈希表
- LISP - 输入与输出
- LISP - 文件I/O
- LISP - 结构体
- LISP - 包
- LISP - 错误处理
- LISP - CLOS
- LISP 有用资源
- Lisp - 快速指南
- Lisp - 有用资源
- Lisp - 讨论
Lisp - Cond 结构
LISP 中的cond结构最常用于实现分支。
cond的语法为:
(cond (test1 action1) (test2 action2) ... (testn actionn))
cond语句中的每个子句都包含一个条件测试和一个要执行的动作。
如果cond之后第一个测试test1评估结果为真,则执行相关的动作部分action1,返回其值,并跳过其余子句。
如果test1评估结果为nil,则控制流移动到第二个子句,而无需执行action1,并遵循相同的过程。
如果所有测试条件的评估结果均为假,则cond语句返回nil。
示例
创建名为main.lisp的源代码文件,并在其中键入以下代码。这里我们使用带有失败条件的cond结构。
main.lisp
; set a as 10 (setq a 10) ; check a being greater than 20 (cond ((> a 20) (format t "~% a is greater than 20")) ; statement is not printed as case is not true (t (format t "~% value of a is ~d " a))) ; otherwise print the statement
单击“执行”按钮或键入Ctrl+E时,LISP会立即执行它,返回的结果为:
value of a is 10
请注意,第二个子句中的t确保如果其他子句都不满足,则执行最后一个动作。
示例
更新名为main.lisp的源代码文件,并在其中键入以下代码。这里我们使用带有成功条件的cond结构。
main.lisp
; set a as 30 (setq a 30) ; check a being greater than 20 (cond ((> a 20) (format t "~% a is greater than 20")) ; statement is printed as case is true (t (format t "~% value of a is ~d " a))) ; statement is not printed
单击“执行”按钮或键入Ctrl+E时,LISP会立即执行它,返回的结果为:
a is greater than 20
示例
更新名为main.lisp的源代码文件,并在其中键入以下代码。这里我们使用带有否定条件的cond结构。
main.lisp
; set a as 30 (setq a 30) ; check not a as false (cond ((not a) (format t "~% a " a)) ; statement is not printed (t (format t "~% NOT a is Nil ~d" a))) ;
单击“执行”按钮或键入Ctrl+E时,LISP会立即执行它,返回的结果为:
NOT a is Nil 30
lisp_decisions.htm
广告