タグ付けされた質問 「stm」


1
ソフトウェアトランザクションメモリの構成可能性の例
常に言及されるソフトウェアトランザクションメモリの主な利点の1つは、構成可能性とモジュール性です。異なるフラグメントを組み合わせて、より大きなコンポーネントを作成できます。ロックベースのプログラムでは、多くの場合そうではありません。 これを実際のコードで説明する簡単な例を探しています。私はClojureの例を好むが、Haskellも大丈夫だ。サンプルが、簡単に構成できないロックベースのコードを示している場合のボーナスポイント。
11 haskell  clojure  stm 

1
Clojureで「ref」の履歴にアクセスする
refのドキュメントには:max-historyオプションが示され、「refは読み取り要求を処理するために必要に応じて動的に履歴を蓄積する」と記載されています。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 おそらくthe-worldの値は「hello」、「better」、「better !!!」です。その履歴にアクセスするにはどうすればよいですか? その履歴にアクセスできない場合、後で照会できる値の履歴を保持するデータ型はありますか?それとも、なぜデータベースが作成されたのですか?
9 clojure  stm 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.