clojure - 你能看到 Clojure 中原子的先前值吗?
问题描述
“Clojure 形而上学将身份解释为我们人类强加于随时间推移而产生的一系列不变价值的东西”。
如果这是真的,如果身份覆盖所有这些状态,那么我应该能够做这样的事情。
user=> (def wow (atom 1))
#'user/wow
user=> (swap! wow (fn [cur] "You say 'Hello'."))
"You say 'Hello'."
user=> (swap! wow (fn [cur] "I say 'Goodbye'."))
"I say 'Goodbye'."
user=> (swap! wow (fn [cur] "Hello, hello!"))
"Hello, hello!"
; Can I do this?
user=> (get-old-atom-state wow 0)
1
(get-old-atom-state wow 1)
"You say 'Hello'"
是这样吗?或者如果不使用 Clojure 是否真的 GC 旧值?
解决方案
如果这是真的,如果身份覆盖所有这些状态,那么我应该能够做这样的事情。
从哲学上讲,我真的没有看到这个“应该”的任何理由。“亚伦·贝尔”是一个包含你过去经历过的许多状态的身份,但我无法与任何过去的状态互动,甚至无法观察。我知道它们中的任何一个的唯一方法是,如果有人观察到它们并将这些观察结果写在一些我可以参考的不可变对象中。
Clojure 身份的行为方式相同:您可以随时拍摄快照,完成后,您可以随时查看该快照。但是没有人看过的状态永远消失了。
推荐阅读
- javascript - 将 JavaScript 添加到 php 脚本
- javascript - Angular 5手动设置反应形式的错误没有反映在dom(IE / IOS)
- typescript - 在 vue typescript 项目中使用 vuejs 组件
- wpf - 在 MaterialDesignInXamlToolkit 中使用来自不同样本的颜色
- sas - 如何编写 SAS 代码来打开 Viewtable 窗口?
- javascript - 代码拆分如何隐藏应用程序的某些部分?
- asp.net - 如何使用 ASP.Net 使用 NEthereum 注入 MetaMask
- python - 如何在 Python 线程和函数中共享全局变量
- android - 升级“react-native-fbsdk”后构建问题:“0.8.0”,在android中
- java - 隐藏作为实现细节的类型参数