【发布时间】:2012-09-24 08:39:03
【问题描述】:
(cond ((test-1) (expression-1)))
当我使用条件时,我可以给出(表达式-1)中的几个函数吗?
像这样:(cond ((= 1 1) ((fun1) (fun2)) )
【问题讨论】:
(cond ((test-1) (expression-1)))
当我使用条件时,我可以给出(表达式-1)中的几个函数吗?
像这样:(cond ((= 1 1) ((fun1) (fun2)) )
【问题讨论】:
begin 实际上是可选的——cond(至少在 Scheme 和 Emacs Lisp 中)在每个测试表达式之后采用多个表达式,并在隐式 begin 中依次计算它们
(cond ((= 1 1) (fun1 ...) (fun2 ...))
(t (something-else)))
在 Scheme 中使用 #t 而不是 t
【讨论】:
cond 子句中也有一个隐含的 progn(begin 等效项)。我认为 Clojure 是不同的,因为它没有额外的括号对包裹每个子句。
是的,您可以通过将它们包装在begin 中来执行多个表达式,如下所示
(cond ((= 1 1) (begin (fun1) (fun2)))
注意:begin 表达式的返回值将是最后一个表达式的结果,即在示例中,返回值将是 fun2 执行的结果
【讨论】:
cond,您甚至不需要在结果中使用begin(但是,您必须将它用于if)。这样就足够了:(cond ((= 1 1) (fun1) (fun2)))