Slide 1

Slide 1 text

4XJGUͷNBQͱqBU.BQΛ ࡶʹղઆ͢Δ !IJSPOZUJDʢҰٶߒڭʣ UPLVTIJNBBQQ

Slide 2

Slide 2 text

"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

Slide 13

Slide 13 text

ΞΠςϜ਺ σʔλ͕ͳ͍ ΞΠςϜ਺ σʔλ͕͋Δ "SSBZ <> <> 0QUJPOBM OJM /POF 4PNF "SSBZͱ0QUJPOBM OJM

Slide 14

Slide 14 text

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