本章提供的代码受到了一个Haskell解决方案的启发,该方案解决了由美国高等研究计划局(ARPA)的 [9] 提出的一个问题。
Objective-C通过引入block实现了对一等函数的支持:你可以将函数和闭包作为参数并轻松地使用内联的方式定义它们。然而,在Objective-C中使用它们并不像在Swift中一样方便,尽管两者在语意上完全相同。
从历史上看,一等函数的理念可以追溯到Church的lambda演算 [3][1] 。此后,包括Haskell、OCaml、Standard ML、Scala和F#在内的大量(函数式)编程语言都不同程度地借鉴了这个概念。