clojure - 如何应用许多谓词函数中的每一个 (`and` 它们)

标签 clojure

我在向量 fs 中有很多谓词函数,我想将它们全部。这适用于前两个功能:

((and (first fs) (second fs)) value)

不过,我想编写将 应用于所有函数的代码,无论函数有多少。 (apply and fs) 无法编译,因为 and 是一个宏。

有关 workingand 的谓词函数的示例,试试这个:

((and number? integer?) 1)

编辑 如果您没有阅读评论,上面的 结构都是不好的例子。对于实际工作的相同结构,使用 every-pred 而不是 and

最佳答案

由于您正在使用谓词,every-pred可能会感兴趣。

阅读您的编辑后 - 谢谢,我不知道,您可以使用 来做到这一点。此外,我已经编辑了我的答案,我认为你肯定想要应用 every-pred

((apply every-pred [number? integer?]) 1)
=> true
((apply every-pred [number? integer?]) "asdf")
=> false

关于clojure - 如何应用许多谓词函数中的每一个 (`and` 它们),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42239678/

相关文章:

arrays - clojure amap 非常慢

java - 将 Clojure WAR Web 应用程序部署到 Tomcat 后提取的结果应该是什么?

clojure - 在 ns 定义中使用引号括起 require

Ruby 和 Clojure : same algorith (? ) 但结果不同

clojure - 如何使用 clj-pdf 更快地生成 pdf?

java - Clojure编译并使用cygwin运行

string - Clojure:字符字面相等

clojure - 如何访问 LazySeq 值

clojure - 为什么在 Clojure 中向函数定义添加元数据的工作方式与其他形式不同?

clojure - 如何使用 babashka 过滤 tail 的输出