|
|
On 25/04/2012 09:01 PM, Warp wrote:
> nemesis<nam### [at] gmailcom> wrote:
>> Here's the thing about the lambda calculus, which is at the kernel of
>> haskell the language: all the functions are one-argument functions that
>> return other one-argument functions. So, multiple argument functions
>> are actually just syntatic sugar for convenience.
>
> But what's the advantage in having only one-argument functions?
If you're writing a mathematical theory about which computations are
possible, then only having to worry about 1-arg functions makes the
theory simpler. That's why the lambda calculus does it that way.
If you're trying to write a real program to run on a real computer,
that's another matter.
It's useful to be able to quickly throw together a new function by just
writing a partial call to an existing one. The easiest way to implement
that is to consider every function to be a 1-arg function.
Aside from a couple of other conveniences, it also allows you to process
functions of variable numbers of arguments in a uniform way: Keep adding
arguments, one at a time, until it's full.
There's nothing deeply fundamental or sacred about 1-arg functions. They
just have a couple of useful properties, that's all.
Post a reply to this message
|
|