2010-01-01から1年間の記事一覧
構文の文法が違うというのはまあ教科書があるから頑張ればどうにかなるとして、それ以外で難しかったこと。 個人的に思い出せる壁を並べてみます。 関数を(変数に入れて)渡し、それを使うという考えがない クロージャも関数ポインタもコールバックもわかり…
遅延評価タイプにしながらも途中で閉じることができるようにすると、こういう感じになるようです。 (use '[clojure.contrib.duck-streams :only (reader)]) (defn file-reader [target] (let [r (reader target)] {:close (fn [] (.close r)) :seq (letfn [(…
ファイルI/Oが少しなりともわかると応用が効きそうなので試してみました。まずは with-open を使ったものです。 ;-- ファイルを行リストにする (use '[clojure.contrib.duck-streams :only (reader)]) (defn file-to-lines [target] (with-open [r (reader t…
前エントリの部分リスト検索ですが、別に :all を使わなくとも遅延評価してしまえばいいやということでやってみたら、こんな感じになりました。 (defn indexof [coll subcoll & from] (let [sub (seq subcoll) length (count sub) head (first from) head (c…
JVM上で動く言語にはいろいろと興味があって、覚えたり QuickReflector 上に載せてみたりといろいろやっていたのは過去の話。他のことで忙しくなってしまって熱も冷めてしまったのですが、Clojure は気になっていたので日本語訳が出たと聞き早速購入して読ん…
気が回らなくて、こちらいつのまにか1年近く放置していました。仕事で PHP/ActionScript にどっぷり漬かりつつ REST やら OSGi やら 眺めていたら QuickReflector もすっかり忘れている今日この頃。ところで PHP で、以下のようなコードを実行してみます。 …