Entries from 2008-01-02 to 1 day
無意識に外に出しているからしわしわにはならない。
テストのお供にどうぞ。 (define (make-gensym) (let1 i 0 (lambda () (set! i (+ i 1)) (string->symbol (format "G~d" i))))) (define-macro with-gensym (lambda body (let ([org (gensym)] [ret (gensym)]) `(let1 ,org gensym (set! gensym ,(make-gens…
pp って pretty printの略か今更気づいたよ。
inline 展開を軽く実装してみたが難所が多そう。ベースの仕組みは難しくない。手続き呼び出し部分を手続き本体に置き換えるだけ。 手続き定義 (define hoge (lambda ...)) を見つけたら hoge => (lambda ...) の対応を env に保存しておく。その際に手続きを…