对于 R5RS 语言,DrRacket 可以选择打开Disallow redefinition of initial bindings或关闭。
这让我很好奇:是否可以在不使用 DrRacket 的情况下像这样调整语言设置?(例如,从命令行或 Emacs 使用 Racket 时)
如果有,通过哪些方式?如果不是,或者不是以合理的方式,为什么?
该参数compile-enforce-module-constants控制是否允许重新定义:
soegaard$ ./racket
Welcome to Racket v6.6.0.3.
-> (compile-enforce-module-constants #f)
-> (module test r5rs (define + -) (display (+ 43 1)) (newline))
-> (require 'test)
42
Run Code Online (Sandbox Code Playgroud)
在此处查看更多信息:http : //docs.racket-lang.org/guide/module-set.html