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

Re: named let




Joo ChurlSoo wrote:
> I'd like to know why multiple-values syntax can not be used in `named let'.
>
> (srfi-let lp ((a 1) (b 2) (c 3)) (list a b c))   ---> (1 2 3)
> (srfi-let lp ((a b c (values 1 2 3))) (list a b c))  ---> bad syntax error


In this case it seems obvious what the arguments of the procedure LP should be.

In other cases, in particular when rest arguments enter the scene, it is not so clear.
Consider this:

(let lp (((values . as) (values))
         ((values . bs) (values)))
  <<something>>)

Now, which parameter list does LP have, to which variable(s) are the actual
arguments bound, and why?

The approach to this problem taken in SRFI 71 is to (implicitly) ask people to
use a different mechanism than multi-valued named LET in these cases.

Sebastian.