方案:关于cond

时间:2012-09-24 08:39:03

标签: lisp scheme

(cond ((test-1) (expression-1)))

当我使用cond时,我可以在(表达式-1)中给出几个函数吗?

像这样:

(cond ((= 1 1) ((fun1) (fun2)) )

2 个答案:

答案 0 :(得分:7)

begin实际上是可选的 - cond(在Scheme中以及在Emacs Lisp中,至少)在每个测试表达式后面采用多个表达式并依次在隐式{{1 }}

begin

使用(cond ((= 1 1) (fun1 ...) (fun2 ...)) (t (something-else))) 代替#t进行Scheme

答案 1 :(得分:4)

是的,你可以通过将它们包装在begin中来执行多个表达式,如下所示

(cond ((= 1 1) (begin (fun1) (fun2))) 

注意:begin表达式的返回值将是最后一个表达式的结果,即在示例中返回值将是fun2执行