Application Function
Function application function is represented by the term λf.λx.f x
. It accepts a function as an argument and applies it to the argument of the function it returns.
// λf.λx.f x
let apply f x =
f x
let addOne c =
c + 1
let applyAddOne =
addOne
|> apply
|> (fun a -> a 1) // 2
The function can be applied twice λf.λx.f (f x)
, three times λf.λx.f (f (f x))
, etc.
// λf.λx.f (f x)
let twice func arg =
func (func arg)
// λf.λx.f (f (f x))
let thrice func arg =
func (func (func arg))
let addOne c =
c + 1
let applyTwice =
addOne
|> twice
|> (fun a -> a 1) // 3
let applyThrice =
addOne
|> thrice
|> (fun a -> a 1) // 4