日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

2013-03-01から1ヶ月間の記事一覧

いかん、飽きた

ここまで書いてみた後何か急に冷めた。また目移りしてるけどいいや。

interleave と zipmap の使い分け

どちらもイメージ的に間に挟み込むと言う結果では似てはいるなとふと思った。 user> (zipmap [:a :b] [1 2]) {:b 2, :a 1} user> (interleave [:a :b] [1 2]) (:a 1 :b 2) つか zipmap ってこうか (apply merge (map (partial assoc {}) [:a :b] [1 2])) ソ…

tree widget 断念

seesaw の simple-tree-model を試そうと 2ch の板一覧を引っ張ってきて ちょっとゴニョゴニョしてネストした ArrayMap に落とし込んだ所まではいい んだけど、じゃそいつを seesaw の tree Widget に表示させてみようかとし た所で simple-tree-model 内部…

1.5 の clojure.core.reducers って速くなっただけ?

github の changes.md を最初チラ読みした時は Java7 の fork/join フレームワーク使って 裏で並行処理化するようになって早くなったよ、ってくらいしか目に付かなくて、 元々マルチコアでの並列処理にはそこまで興味なかったんでふーんとしか思ってなかった…

変数をいつ破棄するか

Clojure と言うよりプログラム一般の話で Lisp やろうがやるまいが今更な話な気もするけど。lisp 界隈では変数は基本関数内に収まってて関数内で一時変数使いたい時なんかも let や そこから派生する with- 系マクロを使うのが普通みたい。これってプログラ…

-> と ->> の違い

ClojureDocs 見比べてやっと違いが分かった。 -> は引数 1 個しかない関数をチェインしたい時に使う ->> は引数が 2 個以上ある関数をチェインしたい時に使う(但し渡るのは引数の最後) 引数が真ん中に来るようなチェインは諦めた方がいいんだろうけど 2 番目…

プログラミング Clojure 6.6 スネークゲーム を seesaw で作る(2)

昨日の続き。GUI 部分もう少し触ろうかと思ったけど、Model 部分が思ったより理解できて なかったのでそちらから。 Lancet の部分読み飛ばしまくってるせいかなあ。 関数モデルの部分何か難しくないすか? vector のインデックス指定 まずは point-to-screen…

プログラミング Clojure 6.6 スネークゲーム を seesaw で作る(1)

ここはまんま写経するのも面白くないし、実際の使い勝手を知りたいと言う面から Clojure の Swing ライブラリである seesaw 使って書いてみようと思う。 Seesaw のサンプルを取ってくる とは言っても Seesaw は前に brief-tutorial をちょろっと触ってみただ…

プログラミング Clojure p150 について

ここで相互再帰の解決手法で trampoline が紹介されてたので試してみる。 Clojure は 1.4 のお話。 (trampoline trampoline-fibo 9) -> 34 ここまではいいのだが、 (rem (trampoline trampoline-fibo 1000000) 1000) -> ArithmeticException integer overflo…

プログラミング Clojure p145 でのちょっとした疑問

環境構築も終わってちまちまと読み進めてるが、p145 での count-head-pairs の作り方にちょっとした疑問があるのでグチ。count-head-pairs を作るベースに count-runs を作る所まではかなり参考になるんだが、count-head-pairsでcount-runs呼び出すなら、 (f…