[plt-scheme] module question
Hi, The difference between the following two pieces of code puzzles me:
(define-syntax a (syntax-rules () ((a) 'a)))
(module b mzscheme
(provide b)
(define-syntax b (syntax-rules () ((b) (a)))))
(require b)
(b) ; --> a
BUT
(module a mzscheme
(provide a)
(define-syntax a (syntax-rules () ((a) 'a))))
(require a)
(module b mzscheme
(provide b)
(define-syntax b (syntax-rules () ((b) (a)))))
(require b)
(b) ; error: reference to undefined identifier: a ---> arrow to
identifier a
in module b
Of course the problem does not arise if in the second example module
b
includes (require a), which it should, I think. Nevertheless the
difference
puzzles me. Can you explain this? I did this with Textual MzScheme
version
301.14-svn10may2006.
((((lambda(x)((((((x x)x)x)x)x)x))
(lambda(x)(lambda(y)(x(x y)))))
(lambda(x)(write x)x))
"greetings, Jos")