Functions are the most important idea in Haskell. A function takes a single value as input and returns a single value as output. Clearly it is often desirable to take in more than one argument or give out more than one. This can be done using [[tuples]] or [[lists]] but there is a very mathematically elegant and useful method called [[currying]], named for the logician Haskell Curry.
+
Functions are the most important structure in Haskell. A function takes a single value as input and returns a single value as output. Clearly it is often desirable to take in more than one argument or give out more than one. This can be done using [[tuples]] or [[lists]] but there is a very mathematically elegant and useful method called [[currying]], named for the logician Haskell Curry.
Functions in Haskell are also values in themselves, allowing Haskell to use [[higher-order functions]].
Functions in Haskell are also values in themselves, allowing Haskell to use [[higher-order functions]].