[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plt-scheme] Macros and scope


	I've encountered a Chezism that I'm not sure how to circumnavigate.

	(define-syntax letrec
	  (lambda (x)
            (import scheme)  ;;Right here.
	    (syntax-case x ()
	      [(_ ((var val) ...) body)
	      .... (syntax (foo (letrec ((var val) ...) body))) .... ])))

   In the Chez module system, you can "(import scheme)" when it becomes
convenient to lexically refresh the namespace with clean, top-level bindings.
In this case, this allows 'letrec' to be redefined to the outside world, but
within the scope of the binding lambda, 'letrec' takes on the default Chez

	In short, I need to redefine 'letrec', but not within the scope of the

	Hints or suggestions appreciated. I'll keep at the manual re Mz's
modules, macro expansion, and namespaces.


Matt Jadud                            http://www.cs.indiana.edu/~mjadud/
Current Temperature Outside Lindley Hall                 55.6 F / 13.1 C
Canterbury Weather: High 57 F / 14 C, Low 46 F / 8 C, Sunny intervals