joe*_*irt -1 lisp if-statement
所以我正在尝试自学lisp,我目前正在使用这个网站作为参考:https://www.tutorialspoint.com/lisp/lisp_if_construct.htm
我不太明白为什么执行then子句,尽管if子句是假的?
(setq a 10)
(if (> a 20)
then (format t "~% a is less than 20"))
(format t "~% value of a is ~d " a)
Run Code Online (Sandbox Code Playgroud)
输出是:
a is less than 20
value of a is 10
Run Code Online (Sandbox Code Playgroud)
即使if语句为false,then子句是否总是执行?(在这种情况下是).
任何帮助将不胜感激,也很抱歉,如果我的术语完全不正确我仍然是Lisp的新手!
根据文档,if有3个元素.test-expression例如(> a 10),一个then-expression如(- a 10)和else-expression例如.a:
(if (> a 10) ; if a is larger than 10
(- a 10) ; then return the value of a minus 10
a) ; else return the value of a
Run Code Online (Sandbox Code Playgroud)
看看你的代码:
(if (> a 20) ; if a is larger than 20
then ; then return the value of "then"
(format t "~% a is less than 20")); else print a is less than 20 to screen
Run Code Online (Sandbox Code Playgroud)
在这个例子中,他们提供了then子句作为单个变量then.由于测试为假,因此始终打印else-expression.
| 归档时间: |
|
| 查看次数: |
587 次 |
| 最近记录: |