Édipo Féderle
Édipo Féderle

Reputation: 4257

Haskell - About Curried

In Haskell all functions are originally curried, right?

So, let's look at the max function, and I'll write what I understand about how this works.

When I write something like this:

max 4 5

What happens is that a new funcion is created that internally has value of 4, which then recieves a value, so this function is applied to 5 and a correct value is returned?

Did I say something wrong somehow or is this correct?

Upvotes: 5

Views: 211

Answers (1)

ertes
ertes

Reputation: 106

That's correct. You can remember what currying is all about by memorizing two of its most important identities:

-- Function type right-associativity:
a -> b -> c = a -> (b -> c)

-- Function application left-associativity:
f x y = (f x) y

These two identities work together and produce a curried language.

Upvotes: 9

Related Questions