Entries from 2007-02-15 to 1 day

継続改善

引数をヒープ上の vector に積んでいたので、継続からの復帰で引数の数があわなかったりしていた。 (define cont #f) (+ 5 (call/cc (lambda (c) (begin (set! cont c) 10)))) (cont 20) 例えば、(cont 20)を呼ぶと (+ 5 10 20)みたいに評価されて悲しい感じ…

間違うことで初めて理解できること

間違うことで初めて理解できることってのは確実にあるよなぁ。 良くできる人に先回りして答えを教えてもらっても、やってみて間違わないと理解できない。 継続の実装で困って、インタプリタ内の引数の受渡し方法やら、Cスタックをそのまま使うことのあれこれ…

call/cc

call/cc の良い unit testを探していたら、結城さんのところで良いのを発見。 g:sicp:id:hyuki:20060506:cont3 (define find (lambda (pred list) (call/cc (lambda (return) (for-each (lambda (e) (if (pred e) (return e))) list) #f)))) (assert-check-t…