2
votes

In LYAHFGG we read:

Every function in Haskell officially only takes one parameter.

In this description of Lambda Calculus we read:

The second simplification is that the λ-calculus only uses functions of a single input.

My question is: Was the reason that Haskell had single-argument functions to be like lambda calculus?

(Or is it just a combined focus on simplicity with currying?)

1
I think it's more historical influence. All(?) the other lazy functional languages at the time had single argument functions.augustss
One interesting effect of this choice is how it makes it very easy to define typeclasses on function types, and it also makes the Applicative pattern quite a bit more elegant.Alexis King

1 Answers

3
votes

Haskell was indeed strongly intended to be like and even based on lambda calculus. A choice quote from A History of Haskell: Being Lazy with Class:

The simplicity and elegance of functional programming captivated the present authors, and many other researchers with them. Lazy evaluation— with its direct connection to the pure, call-by-name lambda calculus, the remarkable possibility of representing and manipulating infinite data structures, and addictively simple and beautiful implementation techniques—was like a drug.