今週の火曜日(2008年12月9日)から「Structure and Interpretation of Computer Programs (SICP)」 を読み始めている。あらかじめ日本語訳の書籍もAmazonで購入しておいたのだが、英文の原著がネット上に全文掲載されているのを見つけたため、英語で読み進んでいる。英語のリーディングの訓練もできるので、一石二鳥だと思ったからだ。 で、昨日、5章構成のうちのChapter 1を読了した。実に面白い。Chapter 1のテーマはプロシジャの抽象化。すでに他のLISPチュートリアルや「プログラミング Gauche」、東京大学の「Scheme 演習」に掲載されていた内容もあったが、私にとって新鮮なネタも数多くあった。まだ足を踏み出したばかりの段階だが、この内容の濃さは素晴らしいの一言である。 例題としては様々な数学ネタが取り上げられていたが、私が
id:eel3:20090307:1236401934 のCommon Lisp版の自作iotaにはSchemeっぽさが残っているというか、Common Lispっぽさが足りていないと思う。 Schemeは末尾再帰の最適化が仕様に含まれているけどCommon Lispでは含まれていない、というのは有名な話で、だから末尾再帰を最適化してループに展開して欲しい場合は処理系依存の機能に頼ることになる。 しかしそんな軟弱な態度じゃマズイだろう、ということでCommon Lispではループ用のマクロが多用される*1。 ということで、ループマクロの勉強を兼ねて書き直してみた。 まずはdotimes。iotaの第1引数はcountという名前だから、やはり繰り返す回数が大切なんだろうと考えて、dotimes。 ; dotimes 版その01 ; let が余分な感じに見える (defun iota (co
Squeak Perl Scheme Ruby Prolog 色々な言語でライフゲームを作ってみました。 ライフゲームについてはライフゲーム保存会 が詳しいです。また、The Game of Life ですばらしい Java アプレットを遊ぶ事が出来ます。 まず手始めに、Squeak で原型を作りました。Squeak は オブジェクト指向の元祖である Smalltalk の直系の子孫です。最近の言語はどれもオブジェクト指向の 影響を受けているので、まず Squeak で作ったら他にも移植しやすいだろうと思ったのです。 作りながら決めた仕様は以下のとおり。 盤のサイズは 20 x 20 最初ランダムなパターンが現れる 0.2秒に一度世代交代 50 回世代交代をしたらまたランダムなパターンを生成 盤のクラス名は LifeMap ただ、Squeak 版以外は手を抜いてコマンドライン実行です。全部
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く