Slide 13
Slide 13 text
// Credit to @jckarter
func apply(transform: inout T -> U -> Void) -> T -> U -> T {
return { a in
{ b in
var c = a
transform(&c)(b)
return c
}
}
}
let first = [1, 2, 3]
let second = [4, 5, 6]
let third = apply(Array.appendContentsOf)(first)(second)