Clojure-dosync

提供:Dev Guides
2020年6月22日 (月) 22:43時点におけるMaintenance script (トーク | 投稿記録)による版 (Imported from text file)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

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]