[Clojure] 合成関数
Clojure で Haskell のドット演算子のように合成関数を得るには clojure.core/comp を用いる。 user=> (filter (comp not nil?) ‘(a nil b nil c nil d)) (a b c d)
bugyoのlog。決してblogではない。
Clojure で Haskell のドット演算子のように合成関数を得るには clojure.core/comp を用いる。 user=> (filter (comp not nil?) ‘(a nil b nil c nil d)) (a b c d)
Clojure では nil と空リストは同じではない。 (= nil ‘()) => false よって、再帰の停止条件などでは空リストか否かを返す述語 empty? を使う。 (defn sum [lst] (if (empty? lst) 0 (+ (first lst) (sum (rest lst)))))