Clojure可以像Haskell那样实现(g∘f)构造g . f吗?我目前正在使用类似的解决方法(fn [n] (not (zero? n))),这不是很好:)
Mic*_*zyk 54
有一个函数来做到这一点clojure.core叫comp.例如
((comp not zero?) 5)
; => true
Run Code Online (Sandbox Code Playgroud)
您可能还想考虑使用->/ ->>,例如
(-> 5 zero? not)
; => true
Run Code Online (Sandbox Code Playgroud)
Bri*_*per 13
您可以使用Clojure的读取器 - 宏快捷方式为匿名函数重写您的版本,减少击键次数.
user=> (#(not (zero? %)) 1)
true
Run Code Online (Sandbox Code Playgroud)
对于撰写not和其他功能的具体情况,您可以使用complement.
user=> ((complement zero?) 1)
true
Run Code Online (Sandbox Code Playgroud)
使用not结合when和if足够的常见if-not和when-not是核心功能.
user=> (if-not (zero? 1) :nonzero :zero)
:nonzero
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7957 次 |
| 最近记录: |