![]() |
1
50
(重点不是我的。)这里的示例不需要可变状态;你可以用
如果你想变得花哨,你可以避免直言不讳
如果你 真正地 想要使用可变状态,一个 atom 可能有用。
(你不需要一个
但这是非常丑陋的,它根本不是习惯用语Clojure。为了有效地使用Clojure,您应该尝试停止从可变状态的角度进行思考。试图以非功能性风格编写Clojure代码肯定会让你发疯。过一段时间后,你可能会发现你实际上很少需要可变变量,这是一件令人惊喜的事情。 |
![]() |
2
13
VAR(这是当您“定义”某个内容时所得到的)并不意味着要重新分配(但可以):
没有什么能阻止你做:
如果您想要一个线程本地可设置的“place”,可以使用“binding”和“set!”:
然后你可以写一个循环如下:
但我认为这很不符合实际。 |
![]() |
3
6
如果您认为在纯函数中包含可变局部变量是一个很好的、方便的特性,而且不会造成任何伤害,因为函数仍然保持纯,那么您可能会对邮件列表中的讨论感兴趣,其中Rich Hickey解释了将其从语言中删除的原因。 Why not mutable locals? 相关部分:
随后的大多数员额涉及执行一项战略
|
![]() |
4
3
你可以更习惯地使用
|