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

Re: Multiple values in Dylan



    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