我試圖實現Land of Lisp's Dice of Doom game,我得到一個Don't know how to create ISeq from: clojure.lang.PersistentList$1
。
它的出現叫我add-new-dice
功能時:
(defn add-new-dice [board player spare-dice]
(letfn [(f [lst n]
(cond (empty? lst) nil
(zero? n) lst
:else (let [current-player (first (first lst))
current-dice (first (rest (first lst)))]
(if (and (= current-player player) (< current-dice *max-dice*))
(cons (list current-player (+ current-dice 1))
(f (rest lst) (- n 1)))
(cons (first lst) (f (rest list) n))))))]
(f board spare-dice)))
與此:
(add-new-dice '[(0 1) (1 3) (0 2) (1 1)] 0 2)
我這樣做主要是爲了與CL碼熟悉自己,並獲得了一定的經驗移植過來,以Clojure的。
如果有人可以給我一些建議,這將不勝感激。
花了我一段時間,但我確實得到了所有版本的Dice of Doom與Clojure一起工作(儘管我使用compojure而不是家庭網絡服務器)。讓我知道你是否想看看我是如何做到的。我的代碼對於一般發佈來說還不夠好:( – 2012-01-06 12:27:20
嗨艾德里安,你是否在後面聊天?我在理解如何將CL懶惰移植到懶惰seq上:)... – toofarsideways 2012-01-17 11:57:39
嗨toofarsideways,最好只是給我發電子郵件:我是gmail上的adrian.mouat。讓我知道你在哪個國家/時區。 – 2012-01-17 12:15:44