我正试图在4clojure.com解决问题60
我的解决方案适用于最后两种情况,但在处理范围的第一种情况下失败。
这是我的解决方案
(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解析它