Rpt*_*ptx 3 scheme sicp mit-scheme
我正在使用mit-scheme来经历SICP,昨天,我做了一些愚蠢的事情,我想知道是否有办法从中恢复,没有关闭REPL,并重新开始.如果我定义一个非工作程序,与原语同名并打破一切,有没有办法'取消'它?
(define (+ a b) (...junk))
Run Code Online (Sandbox Code Playgroud)
我想"取消定义"这个'+'并继续使用原来的'+'.
unbind-variable 似乎可以做到这一点:
1 ]=> (+ 1 2)
;Value: 3
1 ]=> (define (+ a b) "nonsense")
;Value: +
1 ]=> (+ 1 2)
;Value 2: "nonsense"
1 ]=> (unbind-variable (the-environment) '+)
;Value: #t
1 ]=> (+ 1 2)
;Value: 3
Run Code Online (Sandbox Code Playgroud)