(wat-aro)

無職から有職者にランクアップしました

SICP 問題 4.19

(let ((a 1))
        (define (f x)
          (define b (+ a x))
          (define a 5)
          (+ a b))
        (f 10))

これを同時定義する方法.
delayとforceを使えばできそうだけどと考えました.
内部定義が変数を定義しているときは値をdelayで包んで,
って考えたんですけど,評価する段階で今の実装じゃ無理だと思い諦めました.
その後ググると下でも同じような考察が.

http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E5%86%85%E9%83%A8define%E3%81%AE%E8%A9%95%E4%BE%A1%E9%A0%86