メモ
gosh> (run-program '(let ((make-withdraw (lambda (balance) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds"))))) (let ((w1 (make-withdraw 10000)) (w2 (make-withdraw 5000))) (display (w1 1000)) (display (w2 6000)) (w1 6000)))) "9000\"Insufficient funds\"3000\n" gosh>
上記をうごかすだけでも文字列周りのバグを一つつぶす必要があった。つまりプログラムをもっと沢山動かしてもっと沢山バグを出さなくてはならない。
今のところシンボルが無いのが困る。これは 3.14 Symbols, Libraries, and Separate Compilation でカバーする、予定。実は 3.11 をスキップしているので問題になるかもしれない。