“为什么写这本书?关于 Swift,已经有大量来自 Apple 的现成文档,而且还有更多的书正在编写中。为什么世界上依然需要关于这种编程语言的另一本书呢? 这本书尝试让你学会以函数式的方式进行思考。我们认为 Swift 有着合适的语言特性来适配函数式的编程方法。然而是什么使得程序具有函数式特性?又为何要一开始就学习关于函数式的内容呢? 很难给出函数式的准确定义 — 其实同样地,我们也很难给出面向对象编程,亦或是其它编程范式的准确定义。因此,我们会尽量把重点放在我们认为设计良好的 Swift 函
Swift 为编程世界打开了一扇新的大门,在本书中我们将带领您遨游这个世界。正如 Swift 的创造者 Chris Lattner 所言: “没有 C 的 Objective-C” 确实是在做减法,但是 Swift 引入了泛型和函数式编程的概念,这极大扩展了语言设计的空间。 在 Swift 中引入函数式编程为我们的开发带来了无限的乐趣。在本书中我们将阐述函数式编程的理念,并向您展示如何在 Swift 中将它们运用于程序设计,这可以帮助我们写出更加简洁和明确的代码。
Swiftz 是一个 Swift 库,实现了函数式编程。
示例代码:
let xs = [1, 2, 0, 3, 4]
// we can use the Min semigroup to find the minimal element in xs
sconcat(Min(), 2, xs) // 0
// we can use the Sum monoid to find the sum of xs
mconcat(Sum(i: { return nint8 }), xs) // 10