Church pairs Swift implementation.
Pair := λx.λy.λƒ.ƒ x y First := λp.p(λx.λy.x) Second := λp.p(λx.λy.y)
import Pairs
let pair = pair("answer", 42)
let key = first(pair) // "answer"
let val = second(pair) // 42
I wanted to write it something like that:
struct Pairs {
let cons = { left, right in { fun in fun(left, right) } }
let car = { pair in { pair { left, _ in left } } }
let cdr = { pair in { pair { _, right in right } } }
}
But I didn't succeed in this.