![]() |
1
2
在Clojure中,所有的数据类型都是不可变的。因此
您正在捕获
|
![]() |
2
6
|
![]() |
3
3
当update函数生成一个新的映射时, 他们不照搬旧的 他们生产了一个新的,共享的所有部分,没有改变与旧的一个,只取代了部分所需的变化。
[1]: http://clojure.org/functional_programming#Functional 程序设计不可变数据结构 |
|
4
1
因为assoc和dissoc返回新对象并且不更改某些帐户 |
![]() |
5
1
假设您使用的是数字而不是地图:
在Clojure中,大多数值的行为类似于数字。有些东西是可变的,但它们隐藏在神秘的接口后面。很多编程都可以不用它们来完成。 但是我们怎样才能编程而不改变变量呢?你可能见过阶乘函数
这里有一个类似的函数,它以相同的方式构建地图
它们是看待同一事物的两种不同方式。 通常很容易在它们之间进行翻译,所以如果你能想到一种方法,你就已经想到另一种了。但这确实需要练习,比如学拉丁语。
|
![]() |
Freid001 · 具有最小和最大限制的架构? 6 年前 |
![]() |
phlie · Hoplon With Castra加载后端时出错 7 年前 |
![]() |
David Furnam · Clojure从数组中获取坐标 7 年前 |
![]() |
Jeroen · 如何将惰性序列转换为映射? 7 年前 |