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] -- 您想尝试产生什么结果?

...