剛開始學習Clojure時遇到100門問題。即時得到鑄造錯誤:嘗試將LazySeq投射到IFn時出錯
java.lang.ClassCastException: clojure.lang.LazySeq cannot be cast to clojure.lang.IFn
這裏是我的代碼:
(defn doors [n]
(loop [n n
acc (repeat n false)]
(if (= n 0)
(open-doors acc)
(do
(let
[yy (map-every-nth not acc n)]
(recur (dec n) (acc yy)))))))
(defn map-every-nth [f coll n]
(map-indexed #(if (zero? (mod (inc %1) n)) (f %2) %2) coll))
(defn open-doors [d]
(for [doors d
n (iterate inc 0)
:when d]
n))
(doors 100)
PLZ隨意添加有關解決方案的意見。 – user3139545 2014-08-28 16:17:23
在你打電話給''門',就好像它是一個函數。這不是你想要的。 – 2014-08-28 16:19:26