Lisp - when 结构



when 宏后面是一个 test 子句,该子句可计算为 t 或 nil。如果 test 子句计算为 nil,则不计算任何形式并返回 nil,但如果测试结果为 t,则执行 test 子句后面的 action。

when 宏的语法 −

(when (test-clause) (<action1) )

示例

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

main.lisp

; set a as 100
(setq a 100)
; check if a is greater than 20
(when (> a 20)
   ; print the statement is above statement is true
   (format t "~% a is greater than 20"))
; print the statement
(format t "~% value of a is ~d " a)

输出

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

a is greater than 20
value of a is 100 

示例

更新文件 main.lisp,并在其中键入以下代码。

main.lisp

; set a as 10
(setq a 10)
; check if a is greater than 20
(when (> a 20)
   ; print the statement is above statement is true
   (format t "~% a is greater than 20"))
; print the statement
(format t "~% value of a is ~d " a)

输出

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

value of a is 10 
lisp_decisions.htm
广告