2024年Clojure状态调查!中分享你的想法。

欢迎!有关如何使用本网站的更多信息,请参阅关于页面。

0
转换器

大家好。我刚开始接触Clojure。这是我在这里的第一个帖子。我会尽量说得简短。我不知道为什么这个函数不工作。

(def countToFive
  (reduce
    (fn [acc x] (into acc [(+ x (last acc))]))
    [1]
    [1 1 1 1]
    )
  )

正如其名所示,它本应计算到五。

在此先谢过任何能帮助解释的人。

2 答案

+2

"...为什么这个函数不工作。" 简短回答:它不是一个函数。def仅仅将符号绑定到包含形式的返回值上。

如果你想得到一个函数,可以将第一行改为

(defn countToFive []
哦,我的天。我的问题是我在做 (println (countToFive)) 而不是 (println countToFive)。我在看了那定义几个小时后在想 "这应该能工作",而实际上是因为那个愚蠢的问题。谢谢各位。
对于此类问题,加入Clojurians Slack并在#beginners频道提问可以获得实时答案,这比在“提问”论坛问问题要快得多,您可以在这里注册:https://join.slack.com/t/clojurians/shared_invite/zt-fvf7u6mr-HtHPDF6G3vIV8WfkEXfBaw -- 只需输入您的电子邮件地址(忽略关于工作的说明!)就会发送一个链接以完成注册。
+1

这会产生[1 2 3 4 5] -- 你是想产生什么?

...