[r6rs-discuss] [Formal] Drop formal semantics of library toplevel

AndrevanTonder andre at het.brown.edu
Thu Mar 15 12:07:06 EDT 2007


On Thu, 15 Mar 2007, Robby Findler wrote:

> lambda cannot express letrec.

Does the current semantics of DEFINE express LETREC*?

Regarding expressing LETREC* in terms of LAMBDA, giving some interpretation to 
<undefined> would seem to be a low hurdle to clear to make this possible.

> Macro-expanding the top-level into a letrec and then showing its
> semantics would, again, make it harder to follow along with traces of
> a reduction sequence.

I do not see why some trivial extra nesting would make the reduction so 
much more difficult to follow.

The fact remains that after macro expansion, it is explicitly stated that all 
that remains is the equivalent of a letrec*.  I agree that one can reverse 
this into a sequence of definitions and expressions and that a separate 
semantics can be given for the latter.  But I do not see a justification for 
the large extra volume and extra complexity of the semantics.  I do think any 
added complexity of something do basic to the definition of the language needs 
stronger justification than given.

> (Also, as I understand it, the jury is still out on whether or not the
> top-level of a module is the same as a lambda. See Kent's earlier
> formal comment.)

As I understand it, no-one in that thread disputed that a module can be 
expressed in terms of letrec*.

Andre





More information about the r6rs-discuss mailing list