我试图在4clojure.com上解决一个问题,我应该在不使用的情况下计算集合中的元素数量count.我曾尝试用两种方式for和let我觉得应该工作,但它似乎对环保持复位let.
(#(for [x % :let [y 0]] (inc y)) [1 2 3 4 5])
;; which returns
(1 1 1 1 1)
(#(let [y 0] (for [x %] (inc y))) [1 2 3 4 5])
;; which returns
(1 1 1 1 1)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是为什么会发生这种情况,以及如何让我的"变量"继续为集合中的每个项目增加值.只是说变量这个词让我想知道我是不是想做一些不可能的东西,但我仍觉得这应该有用.
如果我在repl中运行一个更高阶的函数,或者返回某个函数的东西(如下所示),是否有任何方法可以稍后检索返回的函数(由repl返回的值)并进行评估?
user> #(% 5 5)
#function[user/eval13160/fn--13161]
Run Code Online (Sandbox Code Playgroud)
为了解释这个问题的原因,我在玩http-kit,并运行了function run-server。直到执行后,我才意识到该函数返回了停止服务器所需的函数,因此我一直在尝试弄清楚如何使用返回的函数。