[plt-scheme] minor bug

From: David Feuer (dfeuer at techhouse.org)
Date: Wed Jun 19 19:51:25 EDT 2002

I sent suomething about this to c.l.s, but I'll replicate some
here:

Al Petrofsky said:
  (let-syntax ((foo (syntax-rules () ((_ var) (define var 1)))))
     (let ((x 2))
       (begin (define foo +))
       (cond (else (foo x)))
       x))
==correct evaluation==> 2
I say:
==drscheme v200alpha19 evaluation==> 1

Based on an earlier discussion with SK I'm guessing this will be
fixed in alpha20, but this upgrades from a wart-report to a bug report.
Al says eiod does:
(cond (else e1 e2 ...)) ==> (begin #f e1 e2 ...)
to avoid this problem.

David

PS to Shriram:  Having corresponded with Al for several days, I have
come to a much better understanding of why internal define is
a bad thing.




Posted on the users mailing list.