Path: utzoo!utgpu!watmath!att!tut.cis.ohio-state.edu!mailrus!csd4.csd.uwm.edu!cs.utexas.edu!uunet!mcvax!ukc!edcastle!aiai!jeff
From: jeff@aiai.uucp (Jeff Dalton)
Newsgroups: comp.lang.misc
Subject: Re: Language Tenets (was Re: Double Width Integer Multiplication and Division
Message-ID: <747@skye.ed.ac.uk>
Date: 16 Aug 89 19:43:44 GMT
References: <57125@linus.UUCP> <1989Jun24.230056.27774@utzoo.uucp> <1207@quintus.UUCP> <1406@l.cc.purdue.edu> <2568@etive.ed.ac.uk> <605@skye.ed.ac.uk> <1219@quintus.UUCP> <713@skye.ed.ac.uk> <1242@quintus.UUCP>
Sender: news@aiai.ed.ac.uk
Reply-To: jeff@aiai.uucp (Jeff Dalton)
Organization: AIAI, University of Edinburgh, Scotland
Lines: 32

In article <1242@quintus.UUCP> pds@quintus.UUCP (Peter Schachte) writes:
>My point was that if you allow some expressions to return multiple
>values and not allow those to be nested, and still allow the other kind
>that can be nested but can't return multiple values, you really confuse
>the idea of an expression.

Why?

>Especially if you can't immediately tell which kind an expression is
>by looking at it.

When I see "f(x)", I don't know immediately what kind of value it
returns.  Why should the number of values be such a special case?
Of course, it's a less familiar case.  But is it much more than that?

>Better 

You think it's better; I think it's not.

Now what?

>to come up with a semantics for handling a multiple-value
>expression inside another expression, or as an argument to a function. 

Multiple-value-call.  Sometimes you have to put the results in
variables.  What's wrong with that?  Use variables all the time
anyway.

>Or just forget multiple values and pass a pointer to where to put the results.

Thus using assignments when they aren't necessary, worrying about aliasing,
etc.