ؒߟ͑ଓ͚͖ͯͨ8FCΞϓϦέʔγϣϯʹ͓͚Δςετͷ
View Slide
͋ͽʔ$ZCP[V4UBSUVQT JOD$MPKVSFྺझຯ&NBDT ݈߁
ࠓͷ
͜Μͳ͜ͱ͢Αഎܠؒ8FCΞϓϦέʔγϣϯΛ࡞͍ͬͯΔͦΕͳΓʹࣦഊΛܦݧͨ͠༰͍͠Α͔͘Βͳ͍ͱࢥͬͨͱ͜ΖͷղܾࡦΛڞ༗͍ͨ͠
ҙඞͣ͜͠Ε͕ϕετͱࢥ͍ͬͯͳ͍Իָੑͷҧ͍ͱ͔͋Δͱࢥ͏5%%ʹϑΥʔΧεͨ͠͠·ͤΜ Ͱ͖ͳ͍ࢀߟఔʹฉ͍ͯͶ
$MPKVSFؔϓϩάϥϛϯά͔ͩΒςετ؆୯ͩΑʂ
ςετॻ͘ͷ؆୯ͩΑͶʁࢀরಁաੑෆมੑʹΑΓςετ͕༰қ७ਮͳؔΛॻ͘ͷͰςετ͕༰қ
(require '[clojure.test :as t])(defn f [x y](+ x y))(t/deftest f-test(t/is (= (f 1 2) 3))
࣮ࡍʜݱ࣮ͷੈքͰ֎෦ͷγεςϜͱ࿈ܞ͢Δ։ൃ࣌ʹςετ͕ಉ͡3&1-ͷ্Ͱ࣮ߦ͞ΕͯࠔΔ03.͕ͳ͍͔ΒΠϯϝϞϦ%#͑ͳ͍ؔΛࠩ͠ସ͑Α͏ͱ͢Δͱฒྻ࣮ߦͰ͖ͳ͍ڊେͳσʔλߏͷൺֱͰۤ࿑͢Δҙͷ͕ؔظͨ͠௨Γʹ࣮͞Ε͍ͯΔ͔͔Βͳ͍DMPKVSFTQFDΛHFOFSBUJWFUFTUʹͬͯۤ࿑͢Δ3JOHϋϯυϥͷςετ͍͠
࣮ࡍʜݱ࣮ͷੈքͰ֎෦ͷγεςϜͱ࿈ܞ͢Δ։ൃ࣌ʹςετ͕ಉ͡3&1-ͷ্Ͱ࣮ߦ͞ΕͯࠔΔ03.͕ͳ͍͔ΒΠϯϝϞϦ%#͑ͳ͍ؔΛࠩ͠ସ͑Α͏ͱ͢Δͱฒྻ࣮ߦͰ͖ͳ͍ڊେͳσʔλߏͷൺֱͰۤ࿑͢Δҙͷ͕ؔظͨ͠௨Γʹ࣮͞Ε͍ͯΔ͔͔Βͳ͍DMPKVSFTQFDΛHFOFSBUJWFUFTUʹͬͯۤ࿑͢Δ3JOHϋϯυϥͷςετ͍͠ࢥͬͨΑΓςετ͍͠
جຊํ
جຊํDMPKVSFUFTUΛجຊʹߟ͑ΔϞοΫΑΓϦΞϧؔฒྻԽͰ͖ΔΑ͏ʹ࣮͢Δ
DMPKVSFUFTUΛجຊʹߟ͑ΔDMPKVSFUFTUͷ্ʹ࡞ΒΕ֦ͨுϓϥάΠϯΛར༻͢ΔͨΊDMPKVSFTQFDͷDMPKVSFUFTUDIFDLͱͷ౷߹ಠࣗͷςεςΟϯάϑϨʔϜϫʔΫରԠͪʹͳΓ͕ͪ
ϞοΫΑΓϦΞϧؔϞοΫΛదʹར༻͢Δͷ͍͠ԿΛςετ͍ͨ͠ͷ͔Α͔͘Βͳ͍ϞοΫΛར༻ͨ͠ςετ͕ॻ͔ΕΔ
ฒྻԽͰ͖ΔΑ͏ʹ࣮͢ΔςετͲ͏͕ͬͯ૿͑ͯ͘Δಈతܕ͚ݴޠςετ͕࣌ؒʹͳΔ ͕͋ΔҹฒྻԽ͢Δ͔Ͳ͏͔ͱ͔͘ɺςετͷ࣮ߦॱংλΠϛϯάͳͲʹΑͬͯյΕͳ͍Α͏ͳಠཱͨ͠ςετΛॻ͚ΔΑ͏ʹ͢Δ
࣮ફฤ
ݱ࣮ੈքʹ͓͚Δ՝ݱ࣮ͷੈքͰ֎෦ͷγεςϜͱ࿈ܞ͢Δ։ൃ࣌ʹςετ͕ಉ͡3&1-ͷ্Ͱ࣮ߦ͞ΕͯࠔΔ03.͕ͳ͍͔ΒΠϯϝϞϦ%#͑ͳ͍ؔΛࠩ͠ସ͑Α͏ͱ͢Δͱฒྻ࣮ߦͰ͖ͳ͍ڊେͳσʔλߏͷൺֱͰۤ࿑͢Δҙͷ͕ؔظͨ͠௨Γʹ࣮͞Ε͍ͯΔ͔͔Βͳ͍DMPKVSFTQFDΛHFOFSBUJWFUFTUʹͬͯۤ࿑͢Δ3JOHϋϯυϥͷςετ͍͠
ݱ࣮ͷੈքͰ֎෦ͷγεςϜͱ࿈ܞ͢Δ
՝֎෦γεςϜςετ࣌ʹଓͰ͖ͳ͍ͨ͘͠ͳ͍͜ͱ͕͋ΔςετͷʹϝʔϧඈΜͰ͘Δͱ͔ݏͩ֎෦γεςϜͳͷͰɺ͖ʹ͢Δͷ͕͍͠֎෦γεςϜ͕͑ͳ͍ͱ͖ʹςετ͚͜Δͷͪΐͬͱʜ
ղܾࡦ$PNQPOFOU*OUFHSBOUͱ͍͏ϥΠϑαΠΫϧཧ༻ͷϚΠΫϩϑϨʔϜϫʔΫΛར༻͢Δޙ͔ΒಥͬࠐΉͷେมͳͷͰɺ࠷ॳ͔Β͓͖ͬͯ·͠ΐ͏֎෦γεςϜΛίϯϙʔωϯτԽͯ͠ɺςετ༻ίϯϙʔωϯτʹࠩ͠ସ͑Δ
։ൃ࣌ʹςετ͕ ಉ͡3&1-ͷ্Ͱ ࣮ߦ͞ΕͯࠔΔ
՝ଟ͘ͷϓϩάϥϛϯάݴޠͰςετ ผϓϩηεͰ࣮ߦ͞ΕΔ͜ͱ͕ଟ͍։ൃதʹςετΛ࣮ߦ͢Δ߹ʹ3&1-͔Β ςετΛ࣮ߦ͢Δ͜ͱ͕͋Δ3&1-˺ಉҰ+7.ΠϯελϯεӌᮣʹBMUFSWBSSPPUͱ͔Ͱ͖ͳ͍։ൃͱςετͰϦιʔεΛ͍͚͍ͨ
ղܾࡦBMUFSWBSSPPUΛΘͳ͍XJUISFEFGTͳͲΛར༻͢ΔͱͱΓ͋͑ͣ٢ωʔϜεϖʔεʹϕλͰϦιʔεΛఆٛ͠ͳ͍$PNQPOFOU*OUFHSBOUΛར༻͢Δ͜ͱNPVOUMJUFXJUITFTTJPOͱ͍͏Έ༗Γ
03.͕ͳ͍͔ΒΠϯϝϞϦ%#͑ͳ͍
՝42-Λॻ͔͘ɺΫΤϦϏϧμͰΈཱͯΔςετ࣌ʹΠϯϝϞϦ%#Λར༻͢Δͷ͕͍͠%#ݻ༗ͷػೳͱ͔͍͕ͪ03.͕ٵऩͯ͘͠ΕΔࠩҟ͕ٵऩ͞Εͳ͍࣮ߦ͕ؾʹͳΔ͚ͲɺϞοΫͨ͘͠ͳ͍
ղܾࡦฒྻԽͰଟগΧόʔͰ͖Δ͋Δ͍42-ඪ४͚ͩͰͯ͢ॻͭ͘Β͍
ؔΛࠩ͠ସ͑Α͏ͱ͢Δͱฒྻ࣮ߦͰ͖ͳ͍
՝͍ΘΏΔϞοΫ͍ͨ͠γʔϯBMUFSWBSSPPUXJUISFEFGTΛ͏ͱฒྻͰ࣮ߦͰ͖ͳ͍
ղܾࡦ1SPUPDPMΛ࣮͓ͬͯͯ͘͠SFJGZΛ࣮ͬͯΛࠩ͠ସ͑ͨΓ͢Δ%VDUͷ#PVOEBSZͷߟ͑ํTISVCCFSZͱ͍͏ϥΠϒϥϦ͕ྑ͍
ڊେͳσʔλߏͷൺֱͰۤ࿑͢Δ
՝ಛผͳΫϥεͰͳ͘ϚοϓϕΫλ͚ͩͰ σʔλΛදݱ͢ΔͲ͏ͯ͠ωετͨ͠Γɺཁૉ͕ଟ͘ͳͬͨΓ͢Δͱൺֱ͕͘͠ͳΔؔ৺͕͋Δཁૉ;ͨͭɺΈͬͭఔͲͷཁૉ͕ҧͬͨͷ͔͔Βͳ͍
ղܾࡦڵຯ͕͋ΔൣғͷൺֱΛߦ͍͍ͨGVEKFͱ͍͏ϥΠϒϥϦΛ͏ͱDPNQBUJCMFͱ͍͏දݱ͕͑ΔσʔλߏͷͲ͕͜ҧ͔ͬͨΓ͍ͨGMBSFͱ͍͏ϥΠϒϥϦΛ͏ͱৄ͍͠EJGG͕ΈΕΔ
ҙͷ͕ؔظͨ͠ ௨Γʹ࣮͞Ε͍ͯΔ͔ ͔Βͳ͍
՝ΨϕʔδΠϯΨϕʔδΞτʹͳΓ͍͢ҙͷؔΛςετ͍ͯ͠Δͱ͜ΖͰɺ·ͱͳೖग़ྗΛظ͢ΔΑ͏ʹςετ͕ॻ͚ͯɺ࣮ࡍʹݺͼग़͠ଆͰͲͷΑ͏ͳ͕͞ΕΔͷ͔ฦ͞ΕΔͷ͔͔Βͳ͍ύοͱݟಈ͍͍ͯΔ͚Ͳɺ࣮ظͨ͠ಈ࡞Ͱͳ͔ͬͨͱ͍͏ࣄଶ͕ى͜Δ
ղܾࡦظ͍ͯ͠ΔίτΛDMPKVSFTQFDͰॻ͘JOTUSVNFOUΛར༻͢Ε͋Δఔ͙͜ͱ͕Ͱ͖ΔJOTUSVNFOUҙͰىಈ͠ͳ͚Ε͍͚ͳ͍ͷͰɺςετ࣌ʹඞͣىಈ͞ΕΔΑ͏ʹ͢Δ
DMPKVSFTQFDΛHFOFSBUJWFUFTUʹͬͯۤ࿑͢Δ
՝DMPKVSFTQFDΛHFOFSBUJWFUFTUʹར༻͢Δͱ σʔλͷੜͷਫ਼͕ྑ͘ͳ͍͜ͱ͕͋Δ͕͔͔࣌ؒͬͨΓɺσʔλͷੜʹࣦഊ͢ΔνΣοΫ͢ΔଆͷDMPKVSFTQFD៉ྷʹॻ͚ͯɺͦΕΛຬͨ͢σʔλͷੜޮ͕ѱ͍DMPKVSFUFTUDIFDL͕ґଘؔʹೖͬͯ͘ΔϓϩμΫγϣϯͰෆཁ
ղܾࡦσʔλͷੜํ๏ͪΌΜͱࢦఆ͢ΔTQFDઐ༻ͷωʔϜεϖʔεΛ࡞ͯ͠ɺEFWϓϩϑΝΠϧͷͱ͖ͷΈར༻͢ΔΑ͏ʹ͢Δ
3JOHϋϯυϥͷςετ͕͍͠
՝3JOHϋϯυϥड͚औΔϦΫΤετΛ࠶ݱ͢Δͷ͕໘ϦΫΤετϚοϓΛ฿͢Δඞཁ͕͋Δ࣮ࡍʹϛυϧΣΞ͕ద༻͞Εͨޙͷ
ղܾࡦؤுͬͯϛυϧΣΞΛద༻ͨ͠ޙͷΛ࡞ΔSJOHNPDLͱ͔దʹͬͯ฿ϛυϧΣΞΛద༻ͨ͠ϋϯυϥΛςετ͢ΔLFSPEPOΛར༻͢Δएׯςετͷੑ࣭͕ҟͳΔϒϥβͷͳ͍ϒϥβςετ
·ͱΊ
·ͱΊݱ࣮ੈքݫ͍͠ԿΛॏཁࢹ͢Δ͔ʹΑͬͯɺΞϓϩʔνมΘͬͯ͘Δؤுͬͯςετॻ͖·͠ΐ͏