[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Multiple values in Dylan
- To: Scott_Fahlman@sef-pmax.slisp.cs.cmu.edu
- Subject: Re: Multiple values in Dylan
- From: meehan@src.dec.com
- Date: Fri, 06 Nov 92 10:15:16 -0800
- Cc: Sam Pilato <samp@kurz-ai.com>, info-dylan@cambridge.apple.com
- In-reply-to: Message of Fri, 06 Nov 92 12:47:35 EST from Scott_Fahlman@SEF-PMAX.SLISP.CS.CMU.EDU <9211061752.AA10356@inet-gw-1.pa.dec.com>
From: Scott_Fahlman@SEF-PMAX.SLISP.CS.CMU.EDU
Date: Fri, 06 Nov 92 12:47:35 EST
To: Sam Pilato <samp@KURZ-AI.COM>
As for functions of zero values being very confusing in Jim's scheme:
Scott, could you give some examples?
Sure:
(cons (foo a) (bar b) (bletch c))
It kind of looks like too many arguments are being passed there, and my
sophisticated syntax-checking editor just complained. But in this case
it's OK, since bar really does some side-effect and returns zero values, so
it acts sort of like a comment -- drop it in code anywhere. BAR isn't
written yet, so none of the programming tools know that it's going to be
zero-valued.
Gack. You've given multiple-value-call semantics to ALL procedure
calls. I certainly never intended to propose anything like that!
According to what I was suggesting, the form
(cons (foo a) (bar b) (bletch c))
is DEFINITELY erroneous, because an expression that is
a procedure-argument must produce exactly one value. That's why I
said that
(+ (floor a) b)
was also wrong, because FLOOR didn't produce one value.
--Jim