[Haskell-cafe] Real World Haskell: confusion
Derek Elkins
derek.a.elkins at gmail.com
Tue Jan 13 22:54:30 EST 2009
On Wed, 2009-01-14 at 12:39 +1300, George Pollard wrote:
> On Tue, 2009-01-13 at 11:46 -0600, Derek Elkins wrote:
> > No, it means exactly what you said it means. People abuse it to mean
> > the second sense. Those people are wrong and there is already a term
> > for that second sense, namely "partial application." I really wish
> > people would stop conflating these terms*, all it does is create
> > confusion.
> >
> > To Eugene: The suggested meaning of "curriable", namely "able to be
> > curried," does not make sense. curry takes an uncurried function to a
> > curried form.
> >
> > * A related annoyance is people who talk about languages "supporting
> > currying and/or partial application." Unless one means that the
> > language supports higher order functions at all by that, it doesn't make
> > any sense. Haskell has no "support" for currying or partial
> > application. The fact that most functions are in curried form in
> > Haskell is merely a convention (with, admittedly strong -social-
> > ramifications.) The only way one could say Haskell "supports" currying
> > is that it has a lightweight notation for nested lambdas.
>
> I’d almost say that there is no such thing as partial application in
> Haskell. Since every:
>
> > f ∷ a → b → c
>
> is really:
>
> > f ∷ a → (b → c)
>
> there are no multiple arguments to be applied ‘partially’, only a
> function ‘f’ that takes one argument and gives you another, anonymous,
> function.
Dan Piponi linked an LtU thread where I discussed exactly this issue. A
slighly more direct link:
http://lambda-the-ultimate.org/node/2266#comment-33620
In Haskell there is arguably a slight semantic difference, but, yes,
there's not a big difference between application and partial application
(in Haskell.)
More information about the Haskell-Cafe
mailing list