Robert Klemme wrote: > Michael Ulm wrote: > >>Robert Klemme wrote: >> >>>Ralph "PJPizza" Siegler wrote: >>> >>> >>>>On Sat, May 21, 2005 at 01:30:13AM +0900, James Britt wrote: >>>> >>>> >>>>>Eric Mahurin wrote: >>>>> >>>>> >>>>>>I've never quite understood why most languages inherently >>>>>>support returning only a single value >>>>> >>>>> >>>>>Conceptual elegance? >>>>> >>>>>Seems cleaner to say that every expression returns an object, >>>>>though that the object may be a container for other objects, >>>>>rather than assert that expressions may return an unknown number >>>>>of objects >>>>> >>>>> >>>>>James >>>>> >>>> >>>>I also think it may be from the original mathematical idea of a >>>>"function', which only has 1 output value for a given set of inputs, >>> >>> >>>Mathematical functions are in no way limited to yielding a single >>>output value. >>> >> >><pedant_mode> >>But they are. A (mathematical) function f: M -> N from a set M to a >>set N is usually defined as a subset of M x N such that for each >>element m in M there exists exactly one element n in N such that >>the pair (m, n) is in the subset; one then writes f(m) = n. >></pedant_mode> > > > So what? M can be A x B x C and N can be D x E - or whatever. > > >>>>which 3rd generation programming languages adopted as paradigm. >>>>With multiple return values, more in the mindset of a "relation", >>>>an n to m mapping >>> >>> >>>That's what a mathematical function is basically. Don't let sin, >>>cos, max, min etc. fool you on this one. :-) >> >>Maybe you are thinking of vector valued functions, where the return >>value is a vector? In that case, one still has only one return value >>(the vector) which in turn contains other elements. This is very >>similar to returning an array in ruby. > > > With your reasoning there is also just a single input value for math > functions. So either functions have a single input and a single output > value, or multiple at both ends. But claiming that there can be multiple > input values but only a single output value is at least a bit dishonest > IMHO. > Indeed, strictly speaking, a mathematical function can only have one input value. Mathematically, the notation f(x, y) is just a shorthand for f([x, y]). If Kernigan and Richie had paid more attention at math class we would have declarations like (float, float) transform (float, float) in C, and the world would be a better place for it :-) Michael -- Michael Ulm R&D Team ISIS Information Systems Austria tel: +43 2236 27551-219, fax: +43 2236 21081 e-mail: michael.ulm / isis-papyrus.com Visit our Website: www.isis-papyrus.com