2010-02-01から1ヶ月間の記事一覧

新しいプログラミング言語を覚えるときの壁

構文の文法が違うというのはまあ教科書があるから頑張ればどうにかなるとして、それ以外で難しかったこと。 個人的に思い出せる壁を並べてみます。 関数を(変数に入れて)渡し、それを使うという考えがない クロージャも関数ポインタもコールバックもわかり…

Clojure でテキストファイルを読んでみる。(遅延評価)

遅延評価タイプにしながらも途中で閉じることができるようにすると、こういう感じになるようです。 (use '[clojure.contrib.duck-streams :only (reader)]) (defn file-reader [target] (let [r (reader target)] {:close (fn [] (.close r)) :seq (letfn [(…

Clojure でテキストファイルを読んでみる。

ファイルI/Oが少しなりともわかると応用が効きそうなので試してみました。まずは with-open を使ったものです。 ;-- ファイルを行リストにする (use '[clojure.contrib.duck-streams :only (reader)]) (defn file-to-lines [target] (with-open [r (reader t…

Closureによる部分リスト検索(遅延評価)

前エントリの部分リスト検索ですが、別に :all を使わなくとも遅延評価してしまえばいいやということでやってみたら、こんな感じになりました。 (defn indexof [coll subcoll & from] (let [sub (seq subcoll) length (count sub) head (first from) head (c…

プログラミングClojureを読んでみた。これは良い

JVM上で動く言語にはいろいろと興味があって、覚えたり QuickReflector 上に載せてみたりといろいろやっていたのは過去の話。他のことで忙しくなってしまって熱も冷めてしまったのですが、Clojure は気になっていたので日本語訳が出たと聞き早速購入して読ん…

*PHPとActionScriptにどっぷりな1年でした。

気が回らなくて、こちらいつのまにか1年近く放置していました。仕事で PHP/ActionScript にどっぷり漬かりつつ REST やら OSGi やら 眺めていたら QuickReflector もすっかり忘れている今日この頃。ところで PHP で、以下のようなコードを実行してみます。 …