4 May 1997 22:15:20 -0400

Related articles |
---|

[19 earlier articles] |

Re: Multiple return values albaugh@agames.com (1997-04-22) |

Re: Multiple return values tiggr@es.ele.tue.nl (1997-04-30) |

Re: Multiple return values jch@hazel.pwd.hp.com (John Haxby) (1997-05-04) |

Re: Multiple return values jan@digicomp.com (Jan Galkowski) (1997-05-04) |

Re: Multiple return values gscase@interact.net.au (1997-05-04) |

Re: Multiple return values Robert.Harley@inria.fr (1997-05-04) |

Re: Multiple return values tim@franck.Princeton.EDU (1997-05-04) |

Re: Multiple return values jens.hansson@mailbox.swipnet.se (1997-05-04) |

Re: Multiple return values jamesl@netcom.com (1997-05-08) |

Re: Multiple return values hbaker@netcom.com (1997-05-08) |

Re: Multiple return values mark@omnifest.uwm.edu (1997-05-13) |

Re: Multiple return values bear@sonic.net (Ray Dillinger) (1997-05-13) |

Re: Multiple return values jan@fsnif.neuroinformatik.ruhr-uni-bochum.de (Jan Vorbrueggen) (1997-05-14) |

[4 later articles] |

From: | tim@franck.Princeton.EDU (Tim Hollebeek) |

Newsgroups: | comp.compilers,comp.lang.misc |

Date: | 4 May 1997 22:15:20 -0400 |

Organization: | Princeton University |

References: | 97-04-091 97-04-112 97-04-135 |

Keywords: | syntax, design |

(Mars Saxman) marssaxman@sprynet.com writes:

*> I think it is an artefact of the origin of the "function" concept. The*

*> idea of a function in maths is that you give it some parameters and it*

*> performs some calculation on them. The result of the calculation is*

*> the return value. It doesn't make sense to have, for example, an*

*> arctangent return more than one value.*

Pieter Schoenmakers <tiggr@es.ele.tue.nl> wrote:

*>What about a function R x R -> R x R?*

Most mathematicians would contend that this returns a single value,

and that value is an ordered pair of real numbers. Of course,

multiple arguments are just a convenience anyway; one could do just

fine talking about f((a,b,c)) instead of f(a,b,c). The situation is

really symmetric wrt inputs and outputs (especially for relations of

which functions are just a special case); it is the typical

mathematical and PL notation that makes them look different.

IMO, the ideal syntax is:

f(a, b, c) -> (c, d)

though many people prefer assignment-type syntax. The advantage is

that:

f(a) -> a

makes sense read left to right, while:

a := f(a)

looks suspiciously recursive. Using '=' for assignment qualifies as

"not even wrong", IMNSHO :-)

--

Tim Hollebeek

Electron Psychologist

Princeton University

email: tim@wfn-shop.princeton.edu

--

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.