Clojure-dosync
提供:Dev Guides
Clojure-dosync
式とネストされた呼び出しを含むトランザクションで式を(暗黙のdoで)実行します。 このスレッドで既に何も実行されていない場合、トランザクションを開始します。 キャッチされない例外は、トランザクションを中止し、dosyncから流出します。
構文
構文は次のとおりです。
(dosync expression)
パラメータ-「式」は、dosyncブロックに含まれる式のセットです。
戻り値-なし。
例
これがどのように使用されるかの例は、次のプログラムに示されています。
(ns clojure.examples.example
(:gen-class))
(defn Example []
(def names (ref []))
(defn change [newname]
(dosync
(alter names conj newname)))
(change "John")
(change "Mark")
(println @names))
(Example)
出力
上記のプログラムは、次の出力を生成します。
[John Mark]