[plt-scheme] How is letrec different from letrec* in its use?
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