[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Request for Clarification on Rationale



Greetings,

The "Rationale" sections states:

QUOTE: It is impossible to bind the evaluated result of VALUES expression
   QUOTE: to a single variable unlike other Scheme expressions.

I assume you mean "other Scheme values", not expressions.  Doesn't the
following code bind the evaluated result of VALUES to a single variable?

(call-with-values (lambda () (values 1 2 3))
  (lambda VALS
    VALS))


QUOTE: Moreover, the pair of VALUES and CALL-WITH-VALUES is clumsy to use

Is this a fact or an opinion? A SRFI would be more appealing to implementors
if its rationale is based on facts.


   QUOTE: and somewhat slow under some circumstances.

How slow is "somewhat slow"?  How do you quantify it?  And what are the
circumstances that make VALUES and CALL-WITH-VALUES somewhat slow?  Or
do you really mean under some *implementations*?  Was the topic of
Efficient Implementation of Multiple Return Values in Scheme ever
discussed in the literature?


QUOTE: A solution would be to enclose the arguments of VALUES expression
   QUOTE: in a procedure of one argument, a consumer procedure of
   QUOTE: CALL-WITH-VALUS.

How does this SRFI address the efficiency problem?  Looking at the
implementation section, I see many calls to call-with-current-continuation. Is that not somewhat slow under some circumstances? Looking further down, there are many recursive procedures and many assignments that are performed
at runtime.  Maybe your intension is to have a reference implementation
outlining the concept and implementors are encouraged to provide their own
implementations.  If that's the case, it may be a good idea to state it
in the implementation section.

Thank you very much.

Aziz,,,