我一直在4Clojure遇到問題。有Problem 26這需要您先生成n斐波納契數字。我想用偷懶序列和匿名函數來解決它,這是我的解決方案:4clojure與本地Clojure不一致
#(let [fib-seq (lazy-seq (map +
(cons 0 (cons 0 fib-seq))
(cons 1 fib-seq)))]
(take % fib-seq))
它正常工作時,我測試了各種參數蘋果酒(Emacs的),但4clojure拒絕這一解決方案,使得以下情況除外:
java.lang.RuntimeException: Unable to resolve symbol: fib-seq in this context, compiling:(NO_SOURCE_PATH:0)
你知道他們爲什麼會表現不一致嗎?我的Clojure的本地版本是1.5.1
編輯:這對我來說到底有什麼工作:
#(letfn [(fib-seq []
((fn rfib [a b]
(cons a (lazy-seq (rfib b (+ a b)))))
1 1))]
(take % (fib-seq)))
我想通了,在此期間:)的'letfn'解決方案不被支持。謝謝。 –