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

欢迎!有关本站工作方式的更多信息,请参阅关于页面。

0
Transducers

大家好。我是Clojure的新手。这是我第一次发帖。我会尽量把问题说清楚。我不知道为什么这个函数不起作用。

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

正如其名所示,它应该计数到五。

感谢能帮忙解释的人。

2 答案

+2

"...为什么这个函数不起作用。"简短回答:它不是一个函数。def只是将一个符号绑定到其内部形式的返回值。

如果您想要一个函数,可以将第一行更改为

(defn countToFive []
哦,我的天哪。我的问题是,我一直在做(println (countToFive))而不是 just (println countToFive)。我为这个问题花了几个小时盯着定义看,觉得这应该能正常工作。多谢大家。
对于这类问题,加入 Clojurians Slack 并在 #beginners 频道提问会迅速获得实时答案,比你使用“提问”论坛解决问题的速度要快得多。您可以在以下链接处注册 https://join.slack.com/t/clojurians/shared_invite/zt-fvf7u6mr-HtHPDF6G3vIV8WfkEXfBaw -- 只需输入您的电子邮件地址(忽略关于工作的指示!)然后它会发送一个链接以完成注册。
+1

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

...