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]