我想创建一个函数(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