Improve namespace-attach-module example

The current example fails to illustrate the complete use, as the final evaluation of `apple` would succeed even without the `namespace-attach-module` call. This updated example demonstrates that `namespace-require` is still needed after the module is attached, and also shows how the behavior differs from `namespace-attach-module-declaration`.
This commit is contained in:
Michael Ballantyne 2017-09-18 13:30:39 -04:00 committed by Leif Andersen
parent c68f42a1ef
commit 7c3ff9da18

View File

@ -300,15 +300,20 @@ undefined.}
@examples[
(module food racket/base
(provide apple)
(define apple "pie"))
(define apple (list "pie")))
(namespace-require ''food)
(define ns (current-namespace))
(eval:error
(parameterize ([current-namespace (make-base-namespace)])
(namespace-require ''food)))
(define ns (current-namespace))
(parameterize ([current-namespace (make-base-namespace)])
(namespace-attach-module ns ''food)
apple)]}
(namespace-require ''food)
(eq? (eval 'apple) apple))
(parameterize ([current-namespace (make-base-namespace)])
(namespace-attach-module-declaration ns ''food)
(namespace-require ''food)
(eq? (eval 'apple) apple))]}
@defproc[(namespace-attach-module-declaration [src-namespace namespace?]
[modname module-path?]