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

Request for Clarification on Rationale

This page is part of the web mail archives of SRFI 86 from before July 7th, 2015. The new archives for SRFI 86 contain all messages, not just those from before July 7th, 2015.



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,,,