【发布时间】:2022-01-06 16:30:58
【问题描述】:
如何在斐波那契数列上使用 Clojure 原子来实现这一点。
(def x 0)
(def y 0)
(def z 1)
(defn problem []
(def a (atom 0))
(while (< @a 10 )
(do
;logic code need to write to achieve the output
; how can I add b,c == c,b???????.)
(swap! a inc)))
(problem)
输出应该是 0 1 1 2 3 5 8 13 21 34 55
【问题讨论】:
-
problem函数似乎只是将原子从 0 增加到 9。而不是您的评论,请尝试(println @a)。这应该可以帮助您找出自己做错了什么。 -
至少您需要添加一个输出语句,如前所述。但是
inc不只是将值增加1吗?这似乎不是特别像斐波那契那样。 -
您正在与不可变/函数式编程语言中的命令式编程思维作斗争。原子是初学者在学习语言时不应该关注的高级主题,但它是初学者为了熟悉而掌握的东西。学习 Clojure 最难的部分不是记住将括号放在左侧,而是不可变性和 FP(如果这不是您的背景)。如果您从声称教授 clojure 的来源获得此任务或解决方案的方法,请放弃此来源。
标签: clojure