【发布时间】:2015-04-24 18:34:34
【问题描述】:
我正在尝试学习一些 clojure,但现在我被序列卡住了。 我想从现有的创建一个新序列,但 newone 必须只包含顶级元素或所有嵌套的总和。例如,从 '(1 2 (3 4)) 必须有 '(1 2 7)。我认为我的方法是正确的,但我有一个错误:
user=> (make-new '(1 2 (3 4)))
IllegalArgumentException Don't know how to create ISeq from: java.lang.Long
clojure.lang.RT.seqFrom (RT.java:505)
这是我的代码:
(defn sum
[list]
(reduce + (into-array (flatten list))))
(defn make-head
[item]
(if (seq? (first item))
(sum (first item))
item
))
(defn make-new
[list]
(cons(make-head (first list)) (seq (make-new (rest list)))))
希望有人可以帮助我。谢谢。
【问题讨论】:
标签: clojure