clojure:堆栈溢出超出范围

时间:2015-06-01 10:10:49

标签: clojure stack-overflow

我正试图在4clojure.com解决问题60

sequence reductions

我的解决方案适用于最后两种情况,但在处理范围的第一种情况下失败。

这是我的解决方案

(fn reds
([func lst](if (empty? lst)
           []
           (reds func (first lst) (rest lst))))
([func init lst](if (empty? lst)
           (println "hi")
           (concat [init] (reds func (func init (first lst)) (rest lst)))))
)

我认为这是因为我继续在无限列表的更多条款上调用该函数。但我该怎么办呢?

更新:使用lazy-seq解析它

0 个答案:

没有答案