明经通道 发表于 2012-10-9 13:31:49

cond 多条件、多处理结果函数

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

无为我是谁 发表于 2015-11-3 10:42:23

新手学习中不甚感激

jinan1913 发表于 2023-9-19 14:58:14

学习了,平时还真不大用cond呢。

hd654 发表于 2023-11-5 00:13:46

新手学习中不甚感激

dolcat 发表于 2024-10-13 13:30:31

新手学习中不甚感激
页: [1]
查看完整版本: cond 多条件、多处理结果函数