[plt-scheme] help - a simple dispatcher problem
I am trying to write a simple dispatcher and I am having scoping problems:
The idea is to look up a symbol in a list:
(define a '(x y z)) ; list to be used for lookup
(define b '(i j k))
(define (afunc)
(define (dispatch m) ; dispatch
(let ((arg m))
(define (lookup n) ; lookup
(let ((the-list arg))
(set! arg m)
(pp the-list)
(list-ref the-list n)))
lookup))
dispatch)
(begin
(define myfunc (afunc))
(define newfunc (myfunc 'a))
(newfunc 1))
==> returning error - 1 is not a list
it appears that the list a is being
redefined by the symbol 'a or??
Question:
How can I rewrite to recognize the symbol a
passed to myfunc as the orginial definition a?
If this makes any sense.
Thanks,
David Koch
actuary77 at comcast.net