Haskellizing python (was Why not use juxtaposition to indicate function application)
rusi
rustompmody at gmail.com
Sat Mar 17 06:26:28 CET 2012
On Mar 16, 5:45 pm, Ray Song <emacs... at gmail.com> wrote:
> I confess i've indulged in Haskell and found
> f a
> more readable than
> f(a)
>
> And why aren't functions curried (partially applied function is another function which takes the rest arguments) by default?
>
> Thanks in advance for any suggestions.
>
> --
> Ray
In Haskell
a b c d is short for (((a b) c) d)
This works nicely when the latter is commonly required, as for example
happens in a language where what one may call 'the currying
convention' is the default.
It fails when one wants the opposite convention -- a (b (c (d))) --
which may be called the 'function-composition convention.'
The fact that the default convention in haskell is not always a good
idea is seen in the existence of a special application operator $ with
low precedence which allows
a (b (c (d))) to be written as a $ b $ c $ d
It is another matter: as someone pointed out that () is overloaded in
python to denote:
- function application
- tupling
- grouping
Comes from the hegemony of ASCII.
A from-first-principles unicode language would use more of these:
http://xahlee.org/comp/unicode_matching_brackets.html
More information about the Python-list
mailing list