我正在寻找一个与此相反的宏maybe-m
。也就是说,我想要第一个表达式的结果,它返回非零而不评估剩余的表达式。最后一部分很重要,因为如果“解决方案”使用惰性序列,那么它们将被分块评估……这意味着当我不希望表达式进行评估时,它们可以被评估。
这是我正在寻找的示例:
(defn really-cool-stuff [a b c]
(first-not-nil
(operation1 a b) ; <-- this returns nil,
(operation2 b c) ; <-- this returns non-nil, the result is returned
(operation3 a b c))) ; <-- this is not evaluated