The concepts of partial function application and currying are based on Kleene’s theorem in computability theory. A closely related concept to currying is partial evaluation, which is a source-to-source program transformation based on Kleene’s theorem (Jones 1996). The concept of currying is named after the mathematician Haskell Curry who explored the concept. For more information about currying in ML, we refer the reader to Ullman (1997, Chapter 5, Section 5.5, pp. 168–173). For more information on higher-order functions, we refer the reader to Hutton (2007, Chapter 7). For sophisticated examples of the use of higher-order functions in Haskell to create new functions, we refer readers to Chapters 8–9 of Hutton (2007). The built-in Haskell higher-order functions scanl, scanl1, scanr, and scanr1 are similar to foldl, foldl1, foldr, and foldr1. MapReduce is a programming model based on the higher-order functions map and fold (i.e., reduce) for processing massive data sets in parallel using multiple computers (Lämmel 2008).
3.142.249.42