Clojure では nil と空リストは同じではない。
(= nil '()) => false
よって、再帰の停止条件などでは空リストか否かを返す述語 empty? を使う。
(defn sum [lst] (if (empty? lst) 0 (+ (first lst) (sum (rest lst)))))
Clojure では nil と空リストは同じではない。
(= nil '()) => false
よって、再帰の停止条件などでは空リストか否かを返す述語 empty? を使う。
(defn sum [lst] (if (empty? lst) 0 (+ (first lst) (sum (rest lst)))))