タグ

2017年5月23日のブックマーク (2件)

  • 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 の要約
  • Clojureの忘れっぽいrequire、use、import - CLOVER🍀

    Clojureでプログラムを書くと、当然のように使うrequire、use、importの各関数/マクロですが、なんかよく忘れるのでメモっておこうかと。 require関数 Clojureのライブラリをロードするための関数。こういう感じで使います。 (require 'clojure.string) 単独のライブラリをロードする場合は、先頭に「'」が付くと…。 複数ロードする場合は、純粋に繋げばOK。 (require 'clojure.string 'clojure.data) まあ、requireを複数行ってもいいですけど。 requireすると、こんな感じでライブラリの呼び出しが可能に。 (clojure.string/join \, ["Hello" "World"]) 長いよ!っていう場合は、「:as」キーワードを付与することで別名を付けることができます。 (require '[

    Clojureの忘れっぽいrequire、use、import - CLOVER🍀