2016-08-05 21 views

Antwort

4

Der Parameter compile-enforce-module-constants steuert, ob Neudefinitionen erlaubt:

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 

Sehen Sie hier mehr: http://docs.racket-lang.org/guide/module-set.html

+0

Danke, diese Arbeit macht. Um dies jedoch noch ein wenig weiter auszuführen, da dieses Beispiel, ebenso wie das aus der Dokumentation, in der REPL erfolgt: Ist es möglich, diese Parameter selbst in einer Quelldatei zu setzen? – bitrauser

+1

@bitrauser Ich glaube, das ist nicht möglich. Während der Erweiterung des Moduls untersucht der Expander den Parameter, um festzustellen, ob Neudefinitionen zulässig sind. Wenn Sie die Parameter in die Datei einfügen, werden sie erst nach der Erweiterung wirksam. Sie können den Parameter jedoch auch über die Befehlszeile festlegen: 'raquet -e '(compile-enforce-modul-constants #f)''. – soegaard