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.