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

arc

Arcをはてなキーワードに登録してみた。 はてなキーワードを編集するのは初めてなので、これで良いのかは謎。 ……と思ったら、キーワード置換が動いていない気がする。 そのうち機能するようになるんだろうか。

Arcでは「define」や「lambda」という「単語」を廃止して、「def」や「fn」のような「略語」にしてある。 これは実はかなり重要な事のような気がしている。 というのは、「lambda」はともかく、「define」は、英語の元の単語と全く同じ文字列だ。 しかし、そ…

風邪引いた。 すごい頭がフラフラして胴がしんどい。 今日はgauche.gongの追い上げ&家の雑用の為に有休を取っていたが、ただ単に寝るだけに消耗されてしまった。 http://practical-scheme.net/wiliki/wiliki.cgi?Arc%e3%81%8b%e3%82%89%e3%81%ae%e6%8c%91%e…

SICP日本語版をどうにか入手して、確認してみた。 これ、やっぱりメタ循環インタープリタだ……。 おそらく、gauche.nightではその辺を既に極めた人は多そうだし、gongの方でもそれらしい演目があるようなので、「ちゃんとした実装」は、聞いた話やプレゼンを…

http://www.oreilly.co.jp/editors/archives/000166.html なかなか発売されないと思ったら、発売日延期されてた。 gauche.nightで販売されるらしいが、先行発売という事は、みんな買いそうなので、現地に遅れて到着したら既に売り切れてそうだ。 そして、当…

もし現実物理世界が遅延評価によって実装されているならば、現実物理世界に観測問題やEPR対等が存在する事を納得しやすい(少なくとも、eagerな評価系で実装されている場合で考えるよりはずっと)。 この時、現実物理世界の評価順は、厳密な時系列順でなくても…

ステップ実行eval開発中(9)

internal defineも正常に機能していない事に気付いた。 ちゃんとtest caseを書かないと駄目だなあ。 defineは、トップレベルで呼ばれた時と、let等の内部で呼ばれた時とで挙動が違う。 これは、defineの内部で、トップレベルで呼ばれたのかlet等の内部で呼ば…

ステップ実行eval開発中(8)

quasiquote内の、unquoteとunquote-splicingが正常に動作していない事に気付き、しばらくはまった。 (Gaucheの)quasiquoteは、内部のunquote、unquote-splicingを、シンボルでのみ判定しており、その実体が何かという事については気にしていないという事を知…

ステップ実行eval開発中(7)

マクロとspecial formの扱いが予想以上に大変な事になった。 デモアプリを作らなくてはいけないが、これがまた大変だ。

ステップ実行eval開発中(6)

隠し束縛を安全に隠す方法を思い付いた。 (gensym)を使って、文字列からは変換不可能なシンボルを生成する 対象モジュール内で、このシンボルに対して、隠したい内容(今回はspecial formの実体)を束縛する このシンボル内の束縛にアクセスする為には、元のシ…

ステップ実行eval開発中(5)

WiLiKiに書いた。 しかし……これって、ものすごくR5RS外だよなあ、あんまり突き詰めるような部分じゃないよなあ、移植性ないよなあ、とも、書きながら思ってしまった。 mzschemeで追試したら、mzschemeではそもそも、special formやmacroの実体に、(即値風に)…

ステップ実行eval開発中(4)

できた。eval拡張パッチが。 さっきのコメントは、((lambda () ...) ...)のような、car部分がlistになってるものについてだった。気にしなくてよかった。 R5RSのevalの項目も確認した。 expression は,データとして表現された一つの妥当な Scheme 式でなけ…

ステップ実行eval開発中(3)

http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3AYAGHG%3AIntroduction#H-1l0p7af 回り道したが、これを発見した。凄い有難い。 で、問題のコードはcompile.scmのpass1のところにあった。 evalの第一引数のlistの先頭が何なのかをpass1/lookup-head…

ステップ実行eval開発中(2)

要は、 ((eval `(,lambda (arg) arg) (interaction-environment)) 123) => 123 のように、evalに対して、マクロやspecial formの「実体」を渡した時にも、evalがそれをマクロやspecial formとして扱ってくれれば問題は解決するのだが、とりあえずGaucheはそ…

ステップ実行eval開発中(1)

とりあえず手続き類は問題無く動くようになった。 しかし、マクロとspecial formの評価時に割り込み処理を入れるのが難しい。 マクロとspecial formには割り込み処理を入れない事にすると、当初に想定していた利用方法の大半が駄目になってしまう為、この部…

gauche.gong出たい

ステップ実行evalが実はかなり応用範囲が広い事に気付き、ちょっとgauche.gongでプレゼン(という名目の自慢)をしたくなった。 しかし、gauche.gongの応募締め切りは2/17だ。 gauche.nightのある3/8は、Zepp Nagoyaの某イベントに行く(最優先)のだが、このイ…

ラブやん9巻を読んだ。 俺も「今晩から頑張る。」 とりあえず、「一月中に何か作る」という事にしていたのを思い出したので、適当に作った。 http://e.tir.jp/wiliki?hdn%3a%ba%ee%c0%ae%ca%aa