我不能在Clojure(1.2)中对一系列布尔值使用逻辑函数.由于逻辑函数是宏,以下两种方法都不起作用:
(reduce and [... sequence of bools ...])
(apply or [... sequence of bools ...])
Run Code Online (Sandbox Code Playgroud)
错误消息说我"无法获取宏的值:#'clojure.core/and".如何在不编写样板代码的情况下应用这些逻辑函数(宏)?
mik*_*era 14
Michal的答案已经确定,但是当您想要将宏用作函数时,以下替代方法在类似情况下非常有用:
(reduce #(and %1 %2) [... sequence of bools ...])
基本上你只需将宏包装在一个匿名函数中.
考虑这种方法有几个很好的理由:
some或every?不存在的便利功能的情况| 归档时间: |
|
| 查看次数: |
3928 次 |
| 最近记录: |