Slide 1

Slide 1 text

4&͔Β8FCΤϯδχΞ΁ தଜޫ༎(.01FQBCP *OD (.0ϖύϘº4BOTBO߹ಉษڧձ!෱Ԭϖύες ͱ͋ΔϖύϘΧϨοδظੜ͕ ͜ͷ೥ؒͰֶश͖ͯͨ͜͠ͱ

Slide 2

Slide 2 text

ࣗݾ঺հ wதଜޫ༎!MJUFODBUU wΤϯδχΞ w(.0ϖύϘॴଐ wϗεςΟϯάࣄۀ෦ϜʔϜʔυϝΠϯάϧʔϓ w೥݄ೖࣾ wϖύϘΧϨοδظੜ

Slide 3

Slide 3 text

ϜʔϜʔυϝΠϯ wυϝΠϯऔಘ΍؅ཧͳͲ؆୯ʹߦ͑ΔυϝΠϯ౷߹αʔϏε wࠓ೥ͰαʔϏε։͔࢝Β೥໨ʂ wυϝΠϯ͓ਃ͠ࠐΈ਺͸ສ݅Λಥഁ

Slide 4

Slide 4 text

ࠓճͷൃද಺༰֓ཁ wϖύϘΧϨοδͱ͸ʁ w8FCΤϯδχΞͱͳΔͨΊʹ࣮ફ͖ͯͨ͜͠ͱ wࠓޙͷ΍͍͖ͬͯ

Slide 5

Slide 5 text

ϖύϘೖࣾલ

Slide 6

Slide 6 text

ϖύϘೖࣾલ wࣾձΠϯϑϥγεςϜͷιϑτ։ൃۀ຿Λ೥൒ܦݧ wͭͷγεςϜΛऔΓѻ͖ͬͯͨ w 04-JOVY ։ൃݴޠ$ݴޠ ։ൃ؀ڥ7JNͱ͔ w 048JOEPXT ։ൃݴޠ$ ։ൃ؀ڥ7JTVBM4UVEJP

Slide 7

Slide 7 text

ϖύϘೖࣾલ w%#͕࢖ΘΕ͍ͯͳ͍γεςϜ w όΠφϦɺςΩετɺը૾ͳͲଟ༷ͳܗࣜͰ)%%্ʹσʔλΛอଘ͍ͯͨ͠ w5$1*1·ͨ͸γϦΞϧ௨৴Λ࢖༻ͨ͠ωοτϫʔΫ w αʔόؒͷσʔλ௨৴ʹ)551ϓϩτίϧ͸࢖͍ͬͯͳ͍ w ΄΅׬શͳϩʔΧϧͳωοτϫʔΫγεςϜ ೖࣾ࣌఺Ͱ͸·ͬͨ͘ͷ8FCۀքະܦݧऀͩͬͨ

Slide 8

Slide 8 text

ϖύϘΧϨοδͱ͸ʁ

Slide 9

Slide 9 text

ϖύϘΧϨοδ w ೖࣾޙɺ໿ϲ݄ͷ8FC։ൃݚमΛܦͯ഑ଐ͞ΕΔத్࠾༻ϓϩάϥϜ w 8FCۀքະܦݧऀ޲͚

Slide 10

Slide 10 text

͜Ε·ͰͷϖύϘΧϨοδ ̎̌̍̒೥݄̍̌ʙ wظੜ8FCΤϯδχΞ ౦ژɾ෱Ԭ wظੜ"OESPJEΤϯδχΞ ౦ژ wظੜ8FCΤϯδχΞ ෱Ԭ wظੜJ04ΤϯδχΞ ౦ژ wظੜ8FCΤϯδχΞ ౦ژ wظੜ8FCΤϯδχΞ ౦ژɾ෱Ԭ ˡݱࡏืूத

Slide 11

Slide 11 text

ϖύϘΧϨοδʹ͍ͭͯ͸ IUUQTUFDIQFQBCPDPNQFQBCPDPMMFHFTU

Slide 12

Slide 12 text

ϖύϘΧϨοδ wࣗ෼͸ظੜͱͯ͠ೖࣾ͠8FC։ൃݚमΛडߨ wͦͷޙϜʔϜʔυϝΠϯ΁഑ଐ

Slide 13

Slide 13 text

ͦͷޙͲ͏ա͖ͯͨ͝͠ͷ͔ʁ

Slide 14

Slide 14 text

ݱ࣌఺ͰͷεΩϧ w3VCZ3BJMT w։ൃ্͍ͯ͘͠ͰඞཁͳجૅతͳεΩϧ͸शಘ w1)1 wೖ໳Ϩϕϧ w+BWB4DSJQU wK2VFSZ΍7VFKTͷೖ໳Ϩϕϧ wͦͷଞ w%PDLFS OHJOY DIFG͋ͨΓ΋৮͖ͬͯͨ

Slide 15

Slide 15 text

8FCΤϯδχΞͱͳΔͨΊʹ ࣮ફ͖ͯͨ͜͠ͱ

Slide 16

Slide 16 text

·ͣεΩϧϚοϓΛ࡞੒ͨ͠ w8FC։ൃʹؔ͢Δٕज़͸޿େͰ๲େ w8FCΤϯδχΞͷεΩϧϚοϓΛࣗ෼ͳΓʹ࡞੒ͯ͠Έͨ w෼໺͝ͱʹ੔ཧͯ͠၆ᛌ͔ͨͬͨ͠ͷͰ wࣗ෼͕ඞཁͩͳͱࢥ͏εΩϧΛNJOE/PEFΛ࢖ͬͯ࡞੒ wࠓޙϝΠϯͰֶश͍ͯ͘͠ൣғΛ໌֬Խ ˞දݱతʹਖ਼͍͔͠Θ͔Γ·ͤΜ͕ɺ͜͜Ͱ͸εΩϧϚοϓͱݺΜͰ͍͖·͢

Slide 17

Slide 17 text

·ͣεΩϧϚοϓΛ࡞੒ͨ͠

Slide 18

Slide 18 text

8FC։ൃ ωοτϫʔΫɾ 04 Πϯϑϥ αʔϏε 8FCΤϯδχΞ ஌ࣝ ৘ใՊֶɾ ਺ֶ ·ͣεΩϧϚοϓΛ࡞੒ͨ͠

Slide 19

Slide 19 text

8FC։ൃ ωοτϫʔΫɾ 04 Πϯϑϥ αʔϏε 8FCΤϯδχΞ ஌ࣝ ৘ใՊֶɾ ਺ֶ ݱ࣌఺Ͱ ֶशதͷൣғ ·ͣεΩϧϚοϓΛ࡞੒ͨ͠

Slide 20

Slide 20 text

εΩϧϚοϓͷӡ༻ํ๏ w݄Ұఔ౓ʹݟฦͯ͠ߋ৽ͨ͠Γ৽ͨͳϊʔυΛ௥Ճͨ͠Γ wݱঢ়Ͱ͸8FC։ൃத৺ͷֶशͷͨΊɺͦͷྖҬ͕ॆ࣮͍ͯ͠Δ wֶश͍ͯ͠Δ෼໺΍पลٕज़Λ၆ᛌͰݟΕΔͷͰྑ͍ w࣍ͷֶशܭըΛཱͯΔॿ͚ʹͳ͍ͬͯΔ

Slide 21

Slide 21 text

ֶशڭࡐͱͦͷֶश࣌ظ

Slide 22

Slide 22 text

ೖࣾલͷֶशڭࡐ w3VCZPO3BJMT5VUPSJBM IUUQTSBJMTUVUPSJBMKQ w3BJMTҎ֎ʹ3VCZ΍(JUɺ(JUIVCͷجૅதͷجૅΛशಘ wٕज़ॻ wϦʔμϒϧίʔυ w8FCΛࢧ͑Δٕज़ w6/*9ͱ͍͏ߟ͑ํ wϖύϘͷ৽ଔݚमͷެ։هࣄͳͲΛࢀߟʹબఆͨ͠

Slide 23

Slide 23 text

ೖࣾޙʙϲ݄͘Β͍ͷڭࡐ w8%#13&44WPM ϖύΧϨͷڭࡐςΩετ wύʔϑΣΫτ1)1 wύʔϑΣΫτ3VCZ wύʔϑΣΫτ3VCZPO3BJMT w&WFSZEBZ3BJMT34QFDʹΑΔ3BJMTςετೖ໳ ˞̏ϲ݄Ͱ͢΂ͯಡഁͨ͠Θ͚Ͱ͸ͳ͍Ͱ͢

Slide 24

Slide 24 text

ύʔϑΣΫτ1)1ʁ

Slide 25

Slide 25 text

ɾεϚϗ༻αΠτ ɾ৽υϝΠϯϖʔδ ɾΦʔΫγϣϯϖʔδ ɾ"1*ػೳ ɾΧʔτػೳ ɾυϝΠϯݕࡧτοϓ ɾυϝΠϯҠ؅ ɾҰׅऔಘϖʔδ ɾϓϨϛΞϜυϝΠϯϖʔδͳͲ 1$༻αΠτ ϜʔϜʔυϝΠϯͷ࢖༻ݴޠߏ੒ ɾυϝΠϯ؅ཧϖʔδ ίϯτϩʔϧύωϧ

Slide 26

Slide 26 text

ؓ࿩ٳ୊

Slide 27

Slide 27 text

3BJMTͰͷ։ൃۀ຿ελʔτޙ w3BJMTΨΠυ IUUQTSBJMTHVJEFTKQ w3BJMTϧʔςΟϯά w"DUJPO7JFXͷ֓ཁ wϨΠΞ΢τͱϨϯμϦϯά w"DUJWF3FDPSEͷجૅ wύʔϑΣΫτ3VCZPO3BJMT

Slide 28

Slide 28 text

3VCZʹ͍ͭͯΑΓਂ͍ཧղΛಘΔͨΊʹ wΦϒδΣΫτࢦ޲ઃܭ࣮ફΨΠυ wϝλϓϩάϥϛϯά3VCZୈ൛ w3VCZެࣜͷϦϑΝϨϯεϚχϡΞϧ w IUUQTEPDTSVCZMBOHPSHKBMBUFTUEPDJOEFYIUNM

Slide 29

Slide 29 text

3BJMTͰͷ࣮ફతͳ8FC։ൃڭࡐͱͯ͠ w3BJMT5VUPSJBM ճ໨ wܥΛςετ͸34QFDͰॻ͖௚͠ͳ͕Β wύʔϑΣΫτ3VCZPO3BJMT w5BLF.Z.POFZ

Slide 30

Slide 30 text

+BWB4DSJQU wվఆ৽൛+BWB4DSJQUຊ֨ೖ໳ w.P[JMMBͷ+BWB4DSJQUϦϑΝϨϯε wIUUQTEFWFMPQFSNP[JMMBPSHKBEPDT8FC+BWB4DSJQU w7VFKT wެࣜΨΠυ IUUQTKQWVFKTPSHWHVJEF

Slide 31

Slide 31 text

ͦͷଞඞཁʹͳͬͨεΩϧֶश༻ͷڭࡐ wεΫϥϜ࣮ફೖ໳ w8FC"1*5IF(PPE1BSUT wجૅ͔Βͷ.Z42- wཧ࿦͔ΒֶͿσʔλϕʔε࣮ફೖ໳

Slide 32

Slide 32 text

৘ใऩूɾ։ൃͰ͓ੈ࿩ʹͳͬͯΔαʔϏε w5XJUUFS w͸ͯͳ৽ண৘ใ w3VCZ*OTJEF w2JJUB wTUBDLPWFSqPX wࣾ಺4MBDLͷEFWνϟϯωϧ

Slide 33

Slide 33 text

ͪͳΈʹʜ wిࢠॻ੶೿ wٕज़ධ࿦ࣾ΍ΦϥΠϦʔͳͲ͸֤ࣾ)1Ͱ௚઀ߪೖ͕Ͱ͖Δ w"NB[POʹ͸ͳ͍FQVCܗࣜͳͲ΋ఏڙ͞Ε͍ͯΔ w,JOEMFͰ͸ͳ͘J#PPLT೿ wJ1BE൛J#PPLTͷʮεΫϩʔϧදࣔʯʹͯ͠ಡΉͷ͕޷͖ wFQVCܗࣜ͸J#PPLTͰಡΉ͜ͱ͕Ͱ͖Δ w .BDͷJ#PPLTʹ΋͜ͷػೳೖͬͯཉ͍͠ʜ

Slide 34

Slide 34 text

ֶशํ๏

Slide 35

Slide 35 text

ֶशํ๏ wຊͷ಺༰Λࣸܦ͠ͳ͕ΒಡΈਐΊΔ wࣸܦ͚ͩʹͱͲ·Βͣ৭ʑͳύλʔϯΛಈ࡞֬ೝ͠ͳ͕Β wຊͷ಺༰ͰΘ͔Βͳ͍෦෼͸άάΔ w։͍ͨهࣄͷෆ໌ՕॴΛ͞ΒʹάάΔ Ҏ߱͸࠶ؼతʹ wTUBDLPWFSqPXͳͲͷӳޠهࣄͰ͋ͬͯ΋຋༁ͭͭ͠ͳΔ΂͘ಡΉ

Slide 36

Slide 36 text

৭ʑͳύλʔϯΛಈ࡞֬ೝ wྫ ϒϩοΫͱZJFMEͷؔ܎Λཧղ͢Δ def foo yield end foo do p "hello" end #=> "hello" def buzz(s) yield s end buzz("hello") do |str| p str end #=> “hello" ZJFMEʹҾ਺͋Γ def bar yield "hello" end bar do |str| p str end #=> “hello" ϝιουҾ਺͕ZJFMEʹ౉͞ΕΔ৔߹ ॳา

Slide 37

Slide 37 text

৭ʑͳύλʔϯΛಈ࡞֬ೝ def buzz(s) yield s end buzz("hello") do |str| p str end #=> “hello" def buzz(s) yield s end buzz("hello") do |str| p str end #=> “hello" IFMMP wྫ ϒϩοΫͱZJFMEͷؔ܎Λཧղ͢Δ ϝιουҾ਺͕ϒϩοΫύϥϝʔλcTUScͱͯ͠౉ͬͯ͘Δ·ͰͷྲྀΕ

Slide 38

Slide 38 text

৭ʑͳύλʔϯΛಈ࡞֬ೝ def iich(arr) idx = 0 while idx < arr.size yield arr[idx] idx += 1 end end iich([1, 2, 3]) do |v| p v end #=> 1 # 2 # 3 wҎ্Λ౿·͑ͯ w"SSBZFBDIͷ؆қ࣮૷ΛΈͯΈΔˠ < >͕BSSʹ౉͞ΕΔ JJDI ಺ͷBSS͕Wͱͯ͠༩͑ΒΕΔ ഑ྻͷཁૉ͢΂͕ͯग़ྗ͞ΕΔ wZJFME͕ΠςϨʔλͷػೳͷҰ෦ͱͯ͠ಈ࡞ wߦؒΛิ׬͢ΔͨΊʹಈ࡞֬ೝ͢Δ

Slide 39

Slide 39 text

0CKFDUUBQͱZJFMEʹ͍ͭͯ class Object def tap yield(self) self end end class Foo attr_accessor :name, :mail, :job end john = Foo.new.tap do |foo| foo.name = "John" foo.mail = "[email protected]" foo.job = "Engineer" end p john #=>

Slide 40

Slide 40 text

ෆ໌Օॴͷपล΋ؚΊͯௐࠪ͢Δ w ྫ 3TQFDͷEPVCMF ʹ͍ͭͯௐ΂Δ৔߹ w EPVCMF ͸NPDLΦϒδΣΫτΛ࡞ΔͨΊͷϝιουˡ͙͢ग़ͯ͘Δ w ͦͷ࣌఺ͰҎԼͷෆ໌Օॴ͕͋ͬͨͷͰ࠶ؼతʹௐ͍ࠪͯͬͨ͠ w NPDL΍TUVCͷҧ͍ w NPDLʹର͢ΔFYQFDU ͱBMMPX ͷҧ͍ w EPVCMF ɺJOTUBODF@EPVCMF ɺTQZ w BMMPX@BOZ@JOTUBODF@PG

Slide 41

Slide 41 text

ֶशํ๏ʹ͍ͭͯͷ·ͱΊ w࠷ॳʹྑॻΛͻͱ௨ΓಡΜͰجૅݻΊΛ w ஞҰௐ΂ͳ͕Β΍ͬͯΔͱૣʑʹਏ͘ͳΔ w֤ެࣜΨΠυ΍(JUIVC্ͷ3&"%.&΍8JLJΛಡΉ w ݹ͍৘ใͰ͋Δ৔߹΋͋ΔͨΊɺάάͬͯग़͖ͯͨهࣄͷ಺༰͚ͩΛӏವΈʹ͠ͳ͍ w ͋·Γ஌ΒΕ͍ͯͳ͍࢖͍ํΛಘΒΕΔ৔߹΋͋Δ

Slide 42

Slide 42 text

ֶशޮ཰Λ্͛Δ

Slide 43

Slide 43 text

ֶशޮ཰Λ্͛Δ wखΛಈ͔͢ɺΞ΢τϓοτ͢Δ wݴޠ΍ϑϨʔϜϫʔΫͷઃܭࢥ૝Λ཈͓͑ͯ͘ wίʔυϨϏϡʔͯ͠΋Β͏ wษڧձ΍ΧϯϑΝϨϯεʹࢀՃ͢Δ wֶश͍ͯ͘͜͠ͱΛָ͠Ήʂ

Slide 44

Slide 44 text

ݴޠ΍ϑϨʔϜϫʔΫͷઃܭࢥ૝Λ཈͑Δ w3BJMT w%3: w$P$ w4LJOOZDPOUSPMMFS 'BUNPEFM w3VCZ wNJYJO ͳͲ

Slide 45

Slide 45 text

ίʔυϨϏϡʔʹ͍ͭͯ wલ৬Ͱ͸։ൃϓϩηεͷதʹଘࡏ͠ͳ͔ͬͨ wϨϏϡʔΛड͚Δਓ͸ɺࠓ·Ͱͷ஌ݟΛ૯ಈһͨ͠ίʔυͱͳ͍ͬͯΔ͸ͣ wϨϏϡΞʔ͸ͦͷίʔυʹରͯ͠ಉ༷ʹ஌ݟΛ૯ಈһͯ͠ίϝϯτ͢Δ wϨϏϡʔΛ௨͓ͯ͠ޓ͍ʹֶͼΛಘΔػձͰ΋͋Δ wίʔυϨϏϡʔΛ௨ͯ͠νʔϜͷίʔσΟϯάεΩϧ͕ఈ্͛͞Ε͍ͯ͘ wΊͪΌΊͪΌྑ͍࢓૊Έʂ

Slide 46

Slide 46 text

ֶश͍ͯ͘͜͠ͱΛָ͠Ήʂ wָ͠Έͳ͕Βֶश͍ͯ͘͜͠ͱ͕େࣄ wͦͷͨΊʹ͸ࣗ෼͕ڵຯ͋Δͱ͜ΖΛ΍Δ΂͖ w ͦͷ΄͏͕ଓ͚ΒΕΔɺͱ͍͏͔ͦ͏Ͱͳ͍ͱଓ͔ͳ͍͔΋͠Εͳ͍ wͦͯ͠ྑ͍αΠΫϧΛճ͍ͯ͘͠ wֶशˠΞ΢τϓοτ͢ΔˠϑΟʔυόοΫΛಘΔ

Slide 47

Slide 47 text

͞Βʹֶशޮ཰Λ্͛Δʹ͸

Slide 48

Slide 48 text

͞Βʹֶशޮ཰Λ্͛Δ wϖύϘ͸ෳ਺ͷαʔϏεΛӡӦ͍ͯ͠·͢ wαʔϏεຖʹϨϙδτϦ͕ଘࡏ wͦΕΒ͸ଞαʔϏεͷΤϯδχΞͰ΋ӾཡՄೳʂ w͍ͭͰ΋શαʔϏεͷϨϙδτϦΛࢀরͰ͖Δʂʂ wνʔϜʹ͔͔ΘΒͣࣾ಺ʹ͋Δେྔͷ஌ݟΛಘΔ͜ͱ͕Մೳʂʂʂ w ࣾ಺()&Ͱ৭ʑݕࡧ͢ΔͱଞνʔϜͷٕज़ಋೖ࣌ͷJTTVF͕ൃ۷͞ΕΔ w ଟ͘ͷਓ͕JTTVFʹ༷ʑͳखॱΛ࢒ͯ͘͠Ε͍ͯΔͷͰΊͪΌศར

Slide 49

Slide 49 text

ࠓޙͷ΍͍͖ͬͯ

Slide 50

Slide 50 text

ࠓޙͷ΍͍͖ͬͯ wࠓޙֶश͍͖͍ͯͨ͠ൣғ w8FC։ൃ෼໺Λ޿͛ͯਂΊͭͭɺωοτϫʔΫ΍ΠϯϑϥྖҬʹ΋ wαʔϏεʹରͯ͠ wυϝΠϯݕࡧߴ଎Խ wαΠτγεςϜΛ3BJMT΁Ҡߦ

Slide 51

Slide 51 text

·ͱΊ

Slide 52

Slide 52 text

·ͱΊ wϖύΧϨೖࣾͯ͠೥ͱগ͠ܦա͠·ͨ͠ w࣮ફֶ͖ͯͨ͠शڭࡐ΍ֶशํ๏ʹ͍ͭͯ঺հ wࠓޙ΋αʔϏε։ൃΛ͞ΒʹՃ଎ͤ͞ΔͨΊʹ༷ʑͳྖҬΛֶशͯ͘͠ w͓͢͢ΊͷຊͳͲ৭ʑͱϑΟʔυόοΫ͍͚ͨͩΔͱ޾͍Ͱ͢

Slide 53

Slide 53 text

ϖύϘ͸Ұॹʹಇ͍ͯ͘ΕΔ஥ؒΛ ืू͓ͯ͠Γ·͢ʂ IUUQTUDP$-''. IUUQTUDPO".0$8U ϖύϘΧϨοδظੜʢ౦ژۈ຿ʣ ϖύϘΧϨοδظੜʢ෱Ԭۈ຿ʣ IUUQTUXJUUFSDPNQC@SFDSVJU ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ