2006-12-15から1日間の記事一覧

引き続きY Combinator

竹内関数をY Combinator による実装と、素直な実装でベンチマーク。 (define tak (Y (lambda (f-tak) (lambda (x y z) (cond ((> x y) (f-tak (f-tak (- x 1) y z) (f-tak (- y 1) z x) (f-tak (- z 1) x y))) (else y)))))) (define (r-tak x y z) (cond ((…

家でのんびり

大学から帰って、部屋を片付けてのんびりする。アルゴリズムの授業の資料を眺める。次の授業はリンクトリスト(linked list)とか、リスト構造の話。Javaだといちいちクラス作ってまどろっこしいなぁ、とか、イテレータなんてmapと高階関数で十分じゃねぇか、…

The way of refactoring

昨日に引き続きコードを書き換える作業を少し進める。似たような機能で、微妙に異なる動作をするメソッドを1つのメソッドにまとめる場合に、Rubyでは引数をハッシュ1つにまとめてしまって、キーでオプションを指定して動作を変える、という方法がとても強力…