Entries from 2009-01-05 to 1 day

続 my-define

id:SaitoAtsushi さんと id:g000001さんの助けでたどりつきました。 (define-syntax my-define (lambda (x) (syntax-case x () ((k var val) (with-syntax ([var (datum->syntax #'k (string->symbol (format "$~a" (syntax->datum #'var))))]) #'(define va…

今日の復習

コンピュータとは? 0割 DB I/O コスト比較 10割 WEwLC どうやって機能追加する 10割 WEwLC Sensing and Separation 10割 WEwLC Replace function with function pointer 10割

今日の英語 - Control flow analysis in scheme その5

速読の練習。速読はしない。文の構造を意識しつつ読み進める習慣をつける。方法論はTOEFLテスト速読・速聴大特訓 基礎編で。ルールは以下の通り。思うように進まない。文章構造を意識できていないと思う。 トピックセンテンスは {{ }} で囲む シグナルワード…

B+-Tree in Practice - Database Management Systems

Database Management Systemsの10章。 マインドマップから再構成したまとめ Bulk loading 複数のデータから B+-Tree を 1 から構築するとき。 通常の insert アルゴリズムだと root から 1 データずつ insert。効率悪い ある程度まとめてデータを insert す…

マクロ難しい

syntax-case を利用し my-define というマクロを定義。 (my-define a 3) 以下のように展開されて欲しい。(つまり a の先頭に $ をくっつけたい) (define $a 3)syntax->datum を使えば出来そうな気がするのだけど。うむむ。

R6RS の identifier 規則で残念なところ

R6RS の identifier 規則で残念なところ 2つ。 @ が identifier でない(match.scm の移植で困った) -xxx が identifier でない(コマンドラインオプションを identifier として扱えない) Mosh では拡張しどちらも許可している。

define-syntax の入れ子における ...

マクロがマクロを生成するような場合に define-syntax が入れ子になる。このとき ellipsis "..." に注意。 内側のマクロで利用する ellipsis は外側の ellipsis と区別するために (... ...) とする必要がある。 コード例。 (define-syntax define-command (s…

Mosh のシェル化実験

常用するには全然足りない。パイプどうしよう。 # ls を定義すると $ls も自動で定義される。$つきは出力を改行で split してリストで返す mosh>(filter #/\.scm$/ $ls) ("all-tests.scm" "compiler-vm-cpp.scm" "compiler-vm-pass3.scm" "compiler-vm.scm" …