多条件、多处理结果函数 (cond [(test result ...) ...])
cond 函数的参数可以为任意数目的表。它按顺序对每一个表的第一项求值,直到其中之一的返回值不是 nil 为止。该函数接着对该项后续的其他表达式求值。
返回值
被执行的结果处理表达式中最后一个表达式的值。如果子表中只有一个表达式(即 result 不存在),则返回 test 的值。如果未指定参数,cond 返回 nil。
示例
下面的样例使用 cond 函数执行求绝对值计算: (cond ((minusp a) (- a)) (t a) )
如果变量设为值 -10,则运算结果为 10。
cond 可以作为 case 类型的函数使用。一般情况下,使用 T 作为最后一个(缺省)test 表达式。在下面的另一个简单样例中,变量 s 中存储的是用户输入的字符串,该函数将测试该字符串:如果 s 是 Y 或 y 则返回 1,如果 s 是 N 或 n 则返回 0,否则返回 nil。 (cond ((= s "Y") 1) ((= s "y") 1) ((= s "N") 0) ((= s "n") 0) (t nil) ) |