[plt-scheme] How is letrec different from letrec* in its use?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Fri Feb 13 07:15:33 EST 2009

On Fri, Feb 13, 2009 at 12:59 AM, Alex Shinn <alexshinn at gmail.com> wrote:
> Shriram Krishnamurthi <sk at cs.brown.edu> writes:
>
>> These threads (we had a recent flare-up about LOCAL, as
>> some might recall) point to the worst thing about Old
>> Scheme: not only did they leave the semantics undefined,
>> they ALSO didn't have the courtesy to provide a reference
>> compiler that actually produced unexpected output, thereby
>> compounding confusion (resulting in unknown unknowns).
>
> Where's the reference implementation that gets this right
> for R6RS?  Neither plt-r6rs nor larceny signal an error.
> Ikarus signals the wrong error, but doesn't signal an error
> if you replace `+' with `cons'.

The semantics is executable and covers this case. It produces an
uncaught exception indicating that a letrec variable was touched Sam's
expression.

Robby


Posted on the users mailing list.