More Related Content Similar to Swiftでの関数型プログラミングについて考えていること (20) Swiftでの関数型プログラミングについて考えていること4. Multi-paradigm
Swift is a multi-paradigm, compiled programming
language created by Apple Inc. for iOS, OS X, and
watchOS development.
https://en.wikipedia.org/wiki/Swift_(programming_language)
10. sum2([1, 2, 3, 4, 5])
1 + sum2([2, 3, 4, 5])
1 + (2 + sum2([3, 4, 5]))
1 + (2 + (3 + sum2([4, 5])))
1 + (2 + (3 + (4 + sum2([5]))))
1 + (2 + (3 + (4 + (5 + sum2([])))))
1 + (2 + (3 + (4 + (5 + 0))))
1 + (2 + (3 + (4 + 5)))
1 + (2 + (3 + 9))
1 + (2 + 12)
1 + 14
15
12. 0
1 2 3 4 50 + 1 -> 1
1
2 3 4 51 + 2 -> 3
3
3 4 53 + 3 -> 6
6
4 56 + 4 -> 10
10
510 + 5 -> 15
15
・パックマンの初期値
・パックマンに食わせるコレクション
・パックマンが食った後の新たなacc
を指定できるのがreduce
13. acc num new acc rest
0 1 0 + 1 -> 1 [2, 3, 4, 5]
1 2 1 + 2 -> 3 [3, 4, 5]
3 3 3 + 3 -> 6 [4, 5]
6 4 6 + 4 -> 10 [5]
10 5 10 + 5 -> 15 []
16. varのデメリット
var a = 10
様々な処理
let result = function(a)
functionに何が渡されるかは
ここをすべて読まないと断定できない
17. letのメリット
let a = 10
様々な処理
let result = function(a)
ここだけ読めば、
functionに何が渡されるかが断定できる