2009/12/2 John Cowan <co...@ccil.org>:
> David Rush scripsit:
> 1) (lambda foo . body) isn't quite what you say, because foo is
> a first-class list, not an opaque cookie that only a destructuring
> operation can access.

Obviously.

I am re-thinking the underlying meaning. Auric values are no more an
opaque cookie than a cons-cell is in RnRS Scheme. In fact, they are an
exact equivalent to RnRS vectors. The vector equivalence is so
uninteresting, that I only spent about a sentence on it.

> 2) Under CPS, multiple returns are just multiple arguments passed to
> the continuation, but while there is syntactic sugar for specifying a
> fixed number, or minimum number, of arguments, there is no such sugar for
> specifying a fixed number of results.  This matters because if something
> is sugared the compiler can optimize it freely.

This is precisely my point.

> 3) There are a couple of possibilities for adding such syntactic sugar:
> I suggested (LAMBDA n (arg ...) . body),

That seems un-schemely. I developed the concepts of Auric in an
entirely different Lisp where I made LAMBDA a macro for a slightly
different (and more restrictive) fundamental abstraction construct.
Developing syntactic sugar to make it friendly to Schemers was not
hard. Showing Scheme compatibility was the point of the whole
meta-circular interpreter. I feel that I implemented enough[2] to show
that the surface language of Scheme need not change at all to
incorporate this approach to continuation arguments.

david rush
-- 
[1] I vaguely recall someone saying that Common Lisp uses APPLY/LIST
for CALL-WITH-VALUES/VALUES and takes the car of the returned object
if the continuation only accepts a single value

[2] In fact, I have another small extension to DESTRUCTURE which
harmonizes the dynamic type checking of program values with the
type-checking of procedure arity. Given the demands of my day-job &
busy life, I may have it ready for release in a week or so.

_______________________________________________
r6rs-discuss mailing list
r6rs-discuss@lists.r6rs.org
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to