我想創建一個函數(thunk),它將返回列表中的連續元素。做這個的最好方式是什麼?我寫了一個基於如何局部變量的Clojure中工作的一個明顯缺陷瞭解此代碼:Clojure局部變量
(defn reader-for [commands]
(with-local-vars
[stream commands]
(fn []
(let
[r (var-get stream)]
(if (empty? r)
nil
(let
[cur (first r)
_ (var-set stream (rest r))]
cur))))))
在這段代碼中,我得到:
#<CompilerException java.lang.IllegalStateException: Var null/null is unbound. (Chapel.clj:1)>
這似乎表明,與本地 - 瓦爾是動態作用域。真的嗎?有沒有詞彙範圍的選擇?謝謝你的幫助。
你的意思是連續的? '[1 2 3 4] => [1 2] [3 4]'或'[1 2 3 4] => [1 2] [2 3] [3 4]'?給我們一個輸入和期望輸出的例子 –
你想在經歷它們的最後分組所有的元素? – octopusgrabbus