Questions tagged «stm»


1
软件事务存储的可组合性示例
经常被提及的软件事务存储的主要优点之一是可组合性和模块化。可以将不同的片段合并以产生更大的成分。在基于锁的程序中,通常不是这种情况。 我正在寻找一个简单的示例,用实际代码对此进行说明。我希望在Clojure中举一个例子,但是Haskell也很好。如果该示例还展示了一些不易编写的基于锁的代码,则可以加分。
11 haskell  clojure  stm 

1
在Clojure中访问`ref`的历史记录
ref的文档显示了:max-history选项,并指出“ refs根据需要动态地累积历史记录,以处理读取需求。” 我可以看到REPL有历史记录,但是我看不到如何找到ref的先前值: user=> (def the-world (ref "hello" :min-history 10)) #'user/the-world user=> (do (dosync (ref-set the-world "better")) @the-world) "better" user=> (let [exclamator (fn [x] (str x "!"))] (dosync (alter the-world exclamator) (alter the-world exclamator) (alter the-world exclamator)) @the-world) "better!!!" user=> (ref-history-count the-world) 2 大概世界的值是“ hello”,“ better”和“ better !!!”。我如何访问该历史记录? 如果无法访问该历史记录,是否有一个数据类型保留其值的历史记录,以便以后查询?还是这就是为什么创建原子数据库的原因?
9 clojure  stm 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.