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

Reply via email to