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

Re: named let

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

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

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.