2010-04-01から1ヶ月間の記事一覧
これは簡単だなぁ。ほぼそのまま。 (defun if? (exp) (tagged-list? exp 'if)) (defun if-predicate (exp) (cadr exp)) (defun if-consequent (exp) (caddr exp)) (defun if-alternative (exp) (if (not (null (cdddr exp))) (cadddr exp) nil)) (defun eval…
quoted? は (quote (a b c)) のように quote で始まるかどうかをチェックしている。lisp ではもっと簡単に '(a b c) と書く。こういう lisp の事情が理解できると quoted? はことさら説明するまでもない。 assignment? は set! で始まる scheme の代入(?)。…
scheme の実装で変数をどう扱うか?という話だ。変数はシンボルなので symbolp でチェックしている。簡単だ、、、一方、その評価は簡単じゃない。 まず、仕様として環境が入れ子になっている点がある。さらに、各環境で変数に関連付けされている値がある。こ…
scheme で評価されたときに 3 は数字の 3 と評価されたい。"abc" の文字列は "abc" と評価されたい。eval で最初に検査されるのがそのような、自分自身を返すかどうか?というチェックである self-evaluating? だ。 (defun self-evaluating? (exp) (cond ((n…
ここのポイントは scheme を scheme でつくること。その中心が eval だ。折角なので lisp で再度(2度目、、、)作ってみる。scheme を scheme でつくると SICP にあるように (define (eval exp env) (cond ((self-evaluating? exp) exp) .... と続くことに…
(defun scheme-eval (exp env) (cond ((self-evaluating? exp) exp) ((variable? exp) (lookup-variable-value exp env)) ((quoted? exp) (text-of-quotation exp)) ((assignment? exp) (eval-assignment exp env)) ((definition? exp) (eval-definition exp…
SystemC でモナリザを傾けてみた。3D の変換も何とか出来そう。一応、SystemC でオンザフライでやっているつもり。
microblaze 用の scheme を作った。xcheme と呼ぶ。近日中に SP605 にも移植して公開する予定。多少問題もある。例えば多くの lisp の実装に従い下位 3 bit がタグだ。したがって、int は 29 ビット。アドレスなどは 32 ビットフルに使うことが多いので多少…
実例で学ぶゲーム3D数学を読み始めました。大変わかりやすい。訳者も OpenGL などの本をたくさん書いたり、訳している方です。なんかこれを読んだら 3D でぐりぐりとオブジェクトをまわすことが出来そうな気がしてきた。3D 関連の本を今後読みあさろることに…
まぁなんでもいいけど、世界堂といえばモナリザでしょう。http://tokyopasserby.blogspot.com/2010/02/02.htmlこれだけじゃツイッター状態。
前からちょっと気になっていた Maxima をインストールしてみた。Windows のインストーラがあったので簡単にインストールして使えた。wxMaxima が出来がいい?というコメントをどこかで見たのだけど、全然使い方がわからない。今一度チャレンジしたら、ctrl-e…