让Clojure运行(lein repl)
我只是想让Clojure做好准备。以下是我试图在lein repl中运行的一些代码:让Clojure运行(lein repl),clojure,Clojure,我只是想让Clojure做好准备。以下是我试图在lein repl中运行的一些代码: (def numbers (into [] (range 0 100))) (sum numbers) 但我得到了这个错误: CompilerException java.lang.RuntimeException:无法解析 symbol:sum在此上下文中编译:(无源路径:1:1) 我不知道这是什么意思。我的安装错误吗?我不确定您试图调用的是哪个sum函数,但您可以使用reduce: user=> (
(def numbers (into [] (range 0 100)))
(sum numbers)
但我得到了这个错误:
CompilerException java.lang.RuntimeException:无法解析
symbol:sum在此上下文中编译:(无源路径:1:1)
我不知道这是什么意思。我的安装错误吗?我不确定您试图调用的是哪个
sum
函数,但您可以使用reduce
:
user=> (def numbers (into [] (range 0 100)))
#'user/numbers
user=> (reduce + numbers)
99
我的错。这段代码来自一本书,我正在学习这门语言。我没有意识到,
sum
不是一个内置函数,而是一个他们定义为引入reduce
和fold
的方法。谢谢你为我指出这一点。这很有道理。祝你好运你为什么在这个答案中引用+
?一点小技巧:在这种情况下,可以使用apply
而不是reduce
来获得相同的结果(这对于采用可变参数计数的许多其他函数也是如此)对引号发出呼喊。固定的。