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
_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss