[r6rs-discuss] Proposed features for small Scheme, part 1: a stake in the ground

John Cowan cowan at ccil.org
Fri Sep 4 19:18:18 EDT 2009


Brian Harvey scripsit:

> It certainly wouldn't be my ideal choice, because it has multiple
> return values, a blasphemy.

If you don't have a problem passing multiple arguments to a function,
why do you have a problem passing multiple arguments to a continuation?
I concede that there's a respectable case for procedures having only
one argument, as in ML, Haskell, and Pure, but that's not the Lisp Way.
A lesson dating back to the first Scheme interpreter is that procedures
and continuations the same thing conceptually, and in Chicken they're
implemented identically.

(Almost.  A continuation has to check how many arguments it expects
at run time, because there's no way in Scheme to declare the number
of values that a procedure returns.  I argued for (lambda 2 (a b c)
(values a b)), but Felix said it was too ugly.)

> P.S.  I apologize, I've been super busy, and there have been several
> days when I just deleted all the Scheme mail without reading it... but
> there are one or two things not in any Scheme standard, and not
> implementable on top of any Scheme standard afaik, that I keep missing,
> e.g., ARITY.

Procedure introspection is something that historically Scheme has lacked.
It's an interesting idea, but would need to be worked out further before
it was ripe for standardization.  Consider writing a SRFI.  I'm told
that Chez, MIT Scheme, and Scheme48 are relevant prior art.

-- 
An observable characteristic is not necessarily         John Cowan
a functional requirement.  --John Hudson                cowan at ccil.org



More information about the r6rs-discuss mailing list