<div class="gmail_quote">On Tue, Mar 3, 2009 at 2:43 AM, Peter Verswyvelen <span dir="ltr">&lt;<a href="mailto:bugfact@gmail.com">bugfact@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Lambda calculus is a nice theory in which every function always has<br>
one input and one output. Functions with multiple arguments can be<br>
simulated because functions are first class and hence a function can<br>
&quot;return&quot; a function. Multiple outputs cannot be done, one must embed<br>
these outputs in some data type, e.g. using a tuple, or one must use<br>
continuation passing style.<br>
<br>
Now, does a similar theory exist of functions that always have one<br>
input and one output, but these inputs and outputs are *always*<br>
tuples? Or maybe this does not make any sense?</blockquote><div><br></div><div>Well, this is not quite an answer to your question, but the curried multiple arguments convention in Haskell is exactly that: a convention.  For example, in ML, most functions which take multiple arguments take them in the form of a tuple.  They could just as well be curried, but the culture prefers tuples.</div>
<div><br></div><div><br></div></div>