clojure定义模式匹配
  我对clojure真的很陌生,我想从clojure模拟+ ,我写了这样的东西: 
(defn sum
  ([] 0)
  ([x & xs] (+ x (sum xs))))
(sum 1 2 3 4) ; ERROR
这是不正确的,就像在Haskell中,我可以写
sum' :: [Int] -> Int
sum' [] = 0
sum' (x:xs) = x + sum' xs
clojure代码有什么问题? 谢谢!
正确的如下:
(defn sum
    ([] 0)
    ([x & xs] (+ x (apply sum xs))))
你用一个参数,一个列表调用函数,从而一次又一次地触发第二种情况,直到超过递归深度。
链接地址: http://www.djcxy.com/p/82577.html