タグ

ブックマーク / gist.github.com/kohyama (1)

  • Clojure ref, atom, agent の要約

    stm.md Clojure ref, atom, agent の要約 ref (協調的, 同期的) atom (非協調的, 同期的) agent (非同期的) ref (協調的, 同期的) 作成: ref 参照: deref または @ 変更: dosync で包んで ref-set: 上書き alter: 関数を適用して再代入(順序を保証) commute: 関数を適用して再代入(順序保証なし) 作成 (def x (ref '(1 2 3))) 参照 (deref x) ; -> (1 2 3) @x ; -> (1 2 3) 変更/上書き ref の変更は dosync で包むことで, 複数の変更のアトミシティが保証されるが, 単独の変更の場合でも, dosync で包む必要がある. (ref-set x '(2 3 4)) ; -> java.lang.IllegalStateE

    Clojure ref, atom, agent の要約
  • 1