函数式编程的三个基本概念

1:Pure functions

一个函数的返回结果只与它的参数值有关,没有任何其它可见的影响,它只做一件事情那就是计算返回结果的值。例如

func sum(a: Int, _ b: Int) -> Int {
    return a + b
}

2:First-class functions

可以把一个函数赋值给一个变量。例如

func sayHello() {
    print("Hi!")
}
let greeting = sayHello
greeting()
// prints: Hi!

3:Higher-order functions

函数的参数或者返回值中,最少有一个是函数类型。例如

func inside() -> Void { 
    print("Yo!")
}
// inside's structure: 
// () -> Void

func outside(inner: () -> Void) { 
    inner()
}

outside(inside)
// prints: Yo!

 

 

感谢:Swift Functional Programming: Basic Concepts