2009-11-01から1ヶ月間の記事一覧
Programming ClojureのChapter 7 Macroの途中まで読んだので、マクロを使ってみた。アナフォリックマクロを作成しようとして、sample/macro.clj (ns sample.macro) (defmacro aif [pred then] `(let [it ~pred] (if it ~then))) を定義し、実行すると、 user…
agentをawait,await-for関数で同期化するサンプルを書いてみた。send関数によるagentの更新は非同期で行なわれるが、await関数を使い、send関数で指示した関数の実行が完了するまで待機することができる。 待ち時間を指定したい場合はawait-for関数を使用す…
Programming Clojureをcommuteの説明まで読んだので、alterとcommuteの違いが分かるようなサンプルプログラムを書いてみた。test.clj (def *counter* (ref 0)) (defn test-func [name time] (fn [] (dotimes [i 5] (Thread/sleep 1000) (print (format "%d: …
clojure.contrib/def.cljのソースを眺めたのでメモ。 名前 説明 defvar 変数を初期値とドキュメント文字列で定義する。 defunboud unbound変数をドキュメント文字列で定義する。 defmacro- defmacroのプライベート定義版。 defvar- defvarのプライベート定義…
Ubuntu9.10がリリースされたので、インストールしてみた。Emacs+SKKが無いと何も出来ないので、早速、環境構築してみた。 Emacs23でddskkを使おうとしたら、Emacs22に依存していたので、 以下の手順でddskkをインストールし、Emacs23でSKKを使えるようにした…