在 Common Lisp 里,最简单的条件式是 if 。

if

通常接受三个实参:

  • 一个 test 表达式,
  • 一个 then 表达式
  • 一个 else 表达式。

若 test 表达式求值为逻辑 真 ,则对 then 表达式求值,并返回这个值。
若 test 表达式求值为逻辑 假 ,则对 else 表达式求值,并返回这个值:

if 的最后一个实参是选择性的。如果忽略它的话,缺省值是 nil。

  1. > (if (listp nil) 1 0)
  2. 1
  3. > (if (listp 1) 1)
  4. NIL

if 是特殊的操作符,只有最后两个实参的其中一个会被求值。

if 不能用函数来实现,因为实参在函数调用时永远会被求值。

虽然 t 是逻辑 真 的缺省表示法,任何非 nil 的东西,在逻辑的上下文里通通被视为 真 。

文档更新时间: 2019-07-18 06:30   作者:admin