Logo

Programming-Idioms

History of Idiom 37 > diff from v27 to v28

Edit summary for version 28 by hrschueler:
[Haskell] Clarifications.

Version 27

2018-05-15, 18:32:13

Version 28

2018-05-15, 18:34:47

Idiom #37 Currying

Transform a function that takes multiple arguments into a function for which some of the arguments are preset.

Idiom #37 Currying

Transform a function that takes multiple arguments into a function for which some of the arguments are preset.

Extra Keywords
curry
Extra Keywords
curry
Imports
import Data.Ix
Imports
import Data.Ix
Code
curry range
Code
curry range
Comments bubble
range(a,b) = [a..b]
(curry range 1) = \ i -> [1..i]
curry :: a -> a -> [a]

Haskell begins with most functions already curried and allowing partial projection, hence the uncurried range sprang to mind as a notable exception for this illustration.
Comments bubble
range(a,b) = [a..b]
(curry range 1) = \ i -> [1..i]
curry range :: a -> a -> [a]
curry :: ((a, b) -> c) -> a -> b -> c
_"::" means "is of type"

Haskell begins with most functions already curried and allowing partial projection, hence the uncurried range sprang to mind as a notable exception for this illustration.

Data.Ix contains range
Doc URL
http://hackage.haskell.org/package/base/docs/Prelude.html#v:curry
Doc URL
http://hackage.haskell.org/package/base/docs/Prelude.html#v:curry