"SSBZͷNBQ
let array: [Int] = [1, 3, 8]
array.map {x in x + 1}
Slide 3
Slide 3 text
ͪΐͬͱઢ
array.map {x in x + 1}
array.map({ (x: Int) -> Int in
return x + 1
})
Slide 4
Slide 4 text
"SSBZͷNBQ
let array: [Int] = [1, 3, 8]
array.map {x in x + 1}
Slide 5
Slide 5 text
"SSBZͷNBQ
let array: [Int] = [1, 3, 8]
array.map {x in x + 1}
f(x) f(x) f(x) f(x) = x + 1
Slide 6
Slide 6 text
"SSBZͷNBQ
let array: [Int] = [1, 3, 8]
array.map {x in [x, x + 1]}
Slide 7
Slide 7 text
"SSBZͷNBQ
let array: [Int] = [1, 3, 8]
array.map {x in [x, x + 1]}
f(x) f(x) f(x) f(x) = [x, x + 1]
Slide 8
Slide 8 text
"SSBZͷqBU.BQ
let array: [Int] = [1, 3, 8]
array.flatMap {x in [x, x + 1]}
f(x) f(x) f(x) f(x) = [x, x + 1]
Slide 9
Slide 9 text
0QUJPOBMͷNBQ
let value: Int? = …
value.map {x in x + 1}
Slide 10
Slide 10 text
·ͨ·ͨઢ
[Int] Array
Int? Optional
Slide 11
Slide 11 text
0QUJPOBMͷNBQ
let value: Int? = …
value.map {x in x + 1}
Slide 12
Slide 12 text
0QUJPOBMͷNBQ
let value: Int? = …
value.map {x in x + 1}
let value: Int? = 16
value.map {x in x + 1}
f(x)
let value: Int? = nil
value.map {x in x + 1}
OJM
OJM
NBQ
let array: [Int] = []
array.map {x in x + 1}
-> []
let array: [Int] = [16]
array.map {x in x + 1}
-> [17]
let value: Int? = nil
value.map {x in x + 1}
-> nil
let value: Int? = 16 …Int?(16)
value.map {x in x + 1}
-> 17 …Int?(17)
Slide 15
Slide 15 text
qBU.BQ
let array: [Int] = []
array.flatMap {x in [x + 1]}
-> []
let array: [Int] = [16]
array.flatMap {x in [x + 1]}
-> [17]
let value: Int? = nil
value.flatMap {x in Int?(x + 1)}
-> nil
let value: Int? = 16 …Int?(16)
value.flatMap {x in Int?(x + 1)}
-> 17 …Int?(17)
Slide 16
Slide 16 text
0QUJPOBMͷqBU.BQ
let value: Int? = …
value.flatMap {x -> Int? in
if (x < 1) {
return nil // ܭࢉࣦഊ
} else {
return x - 1
}
}
Slide 17
Slide 17 text
·ͱΊ
func plusOne(x: Int) -> Int {
return x + 1
}
let array: [Int] = [1, 3, 8]
array.map(plusOne)
let value: Int? = 16
value.map(plusOne)
w NBQശ͔Βग़ͯ͠ɺؔΛద༻
ͯ͠ശʹೖΕΔɻ
w qBU.BQശ͔Βग़ͯ͠ɺؔΛ
ద༻ͯ͠ϑϥοτʹശʹೖΕΔɻ
w NBQ
qBU.BQΛ͏ͱɺͦ͜ʹ
͞ΕΔؔ֎ଆͷੈքΛҙࣝ
͠ͳ͍͍ͯ͘ʂ
Slide 18
Slide 18 text
ࢀߟαΠτ
w 4XJGUͷ0QUJPOBMܕΛۃΊΔ
IUUQRJJUBDPNLPIFSJUFNTDGCBEBCG
w Ϟφυʹ͍ͭͯ4XJGUͰઆ໌ͯ͠Έͨ
IUUQRJJUBDPNLPIFSJUFNTGGGDECGBDG
w +BWBͷ0QUJPOBMͷϞφυతͳ͍ํ
IUUQRJJUBDPNLPIFSJUFNTGBECBECG