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)。我为此定义盯着看了几个小时,想"This SHOULD BE WORKING",而面对这个愚蠢的问题。谢谢大家。
对于这类问题,加入Clojurians Slack并在#beginners频道提问可以获得实时答案,比在“提问”论坛上更快地解决问题。您可以通过以下链接注册:https://join.slack.com/t/clojurians/shared_invite/zt-fvf7u6mr-HtHPDF6G3vIV8WfkEXfBaw -- 只需输入您的电子邮件地址(忽略关于工作的说明!)然后它将发送一个链接以完成注册。
+1 播票

这会生成[1 2 3 4 5] -- 您想生成什么?

...