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