Clojure编程:从基础到应用
1. 状态管理与Clojure库的探索
在编程中,状态管理是一个关键问题。有时候需要检查访客是否在内存中被正确跟踪。例如:
(hello "Rich")
-> "Hello, Rich"
@visitors
-> #{"Aaron" "Stu" "Rich"}
这里的访客列表可能因状态的不同而有所差异。状态的问题在于结果会随事件发生的时间而变化。对于函数,可以通过直接的局部知识进行推理;而对于状态,则需要全面了解其历史。因此,应尽可能避免使用状态,但当确实需要时,可以使用如原子(atoms)这样的引用类型,使状态管理变得合理且易于操作。原子(以及所有其他Clojure引用类型)对于多线程和多处理器是安全的,而且无需使用难以处理的锁。
Clojure代码以库的形式进行打包,每个库都属于一个命名空间,类似于Java包。可以使用 require 来加载Clojure库:
(require quoted-namespace-symbol)
例如,加载 clojure.java.io 库:
user=> (require 'clojure.java.io)
-> nil
这里的前导单引号 ' 是必需的,它
超级会员免费看
订阅专栏 解锁全文
51

被折叠的 条评论
为什么被折叠?



