15.高次関数


高次関数


別の関数を、伝達パラメータまたは関数の実行結果を返す関数として受信します.

map

let numbers = [0,1,2,3]
let mapArray = numbers.map { (number) -> Int in
	return number * 2
}

print("map \(mapArray)")
// "map [0,2,4,6]"

filter

let ints = [10,5,20,13,4]
let filterArray = ints.filter { $0 > 5 }

print("filter \(filterArray)")
// "filter [10,20,13]"

reduce

let nums = [1,2,3,4,5]
let reduceResult = numbs.reduce(7) {
	(result: Int, element: Int) -> Int in
	print("\(result) + \(element)")
	return result + element
}

print("reduce \(reduceResult)")
// "7 + 1"
// "8 + 2"
// "10 + 3"
// "13 + 4"
// "17 + 5"
// "reduce 22"