On Mon, 2009-09-07 at 10:43 +0100, David Rush wrote:
> The ML approach is really the only correct way to do it, but you need
> a new form (or two) from which you can then implement
> LAMBDA-as-we-know-it.
I reached essentially the same conclusion. Functions in multiple
arguments (with multiple returns) take and return environments
(or at least tuples). That isn't what lambda in its current form
allows us to write.
And it isn't what any lambda form will allow until we have first-class
environments and/or transparent tuples. The first is beyond scope
for scheme standardization right now, but we'll probably get there
eventually. The second breaks the clean semantics distinguishing
between what is a (returned) list and what is the (primary return
value or) first element of that list.
So, yes, the functions are clean and clear and symmetric but the
language we have to express them is not. Further, the minimal
changes necessary to cleanly and clearly express them would result
in a language so different that it would no longer be scheme.
Bear
_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss