Re: Multiple return values (Henry Baker)
25 May 1997 13:55:09 -0400

          From comp.compilers

Related articles
[28 earlier articles]
Re: Multiple return values (1997-05-08)
Re: Multiple return values (1997-05-13)
Re: Multiple return values (Ray Dillinger) (1997-05-13)
Re: Multiple return values (Jan Vorbrueggen) (1997-05-14)
Re: Multiple return values (1997-05-14)
Re: Multiple return values (Mark Tillotson) (1997-05-25)
Re: Multiple return values (1997-05-25)
Re: Multiple return values (1997-05-30)
| List of all articles for this month |

From: (Henry Baker)
Newsgroups: comp.compilers,comp.lang.misc
Date: 25 May 1997 13:55:09 -0400
Organization: nil
References: 97-04-091 97-04-112 97-05-273
Keywords: theory, design

Mark Tillotson <> wrote:

> Huh? Mathematically a function is simply a many-1 binary relation
> defined for the whole of its domain. Any talk of more than one
> argument is shorthand for using cartesian products, which you can do
> with the result just as easily. In fact functions really don't have
> anything to do with calculation!!

You are correct, but the cartesian product mapping is only one of many
possible mappings. Currying, for example, is _not_ isomorphic to your
cartesian product argument (except in the computed results), and seems
to work just fine for many functional and/or graph-reduction

> The implementors of Fortran didn't, it seems, want to implement
> closures and curried functions, and set a(n) historical precedent.

I'm afraid that the implementors of Fortran didn't _know_ about
closures and curried functions, so I don't think that leaving them out
was an explicit choice on their part.

BTW, as my 'lively linear lisp' paper shows, GC (at least tracing GC)
is not 'required' for closures and curried functions. See my paper on
running closures in a Postscript interpreter for more info: (also .ps.Z)

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.