関数型リアクティブなフロントエンド言語であるelmの紹介
elm͔Βֶ΅͏2016/04/02 ܂ാ ӳࢿ#satoimo
View Slide
ࣗݾհ• ܂ാ ӳࢿ (32)• גࣜձࣾΞϥλφ• ීஈόοΫΤϯυͬͯ·͢• Scalaͱ͔Haskellͱ͔• ΧϝϥͱεΩϡʔόμΠϏϯά͕झຯ
ࠓͷ༰• elmͷհ• σϞ• ؔܕͱϦΞΫςΟϒ• ·ͱΊ
elm
elm• http://elm-lang.org/• ·ͩൃల్্(ݱࡏver. 0.16.0)ͳݴޠ• ؔܕϦΞΫςΟϒͳϑϩϯτΤϯυݴޠ• HTML, JavaScript(, CSS)Λੜ͢Δ• HaskellϥΠΫͳهड़͕Ͱ͖Δ
લஔ͖• elm·࣮ͩ༻తͳஈ֊Ͱ͋Γ·ͤΜ• elm͕͑ͳͯ͘ྑ͍Ͱ͢• Τοηϯε͚ͩͳΜͱͳ͘Θ͔ͬͯ͘ΕΔͱ͋Γ͕͍ͨͰ͢(^_^ʎ
σϞ
TodoMVC (ެࣜσϞ)
ྃͨ͠λεΫΛআະྃͷλεΫ ͲͷλεΫ͕ݟΕΔঢ়ଶ͔ʁλεΫྃͨ͠ʁλεΫϦετ
ؔܕͱϦΞΫςΟϒ
ঢ়ଶͷͱෳࡶ͞• ཧ͢Δঢ়ଶͷ͕ଟ͍ˠෳࡶʹͳΔ• ϑϥάͷཧɺදࣔ༻ͷɺetc…• ࣮ࡍʹผͷঢ়ଶʹґଘ͍ͯ͠Δ͜ͱ• ґଘ͍ͯ͠Δͣͷঢ়ଶ͕ಉظ࿙Εˠόά• ෳͷঢ়ଶΛಉظ͢ΔͨΊͷίʔυ͕૿͑Δ
ґଘ͍ͯ͠Δͣͷঢ়ଶvar str = “hoge”;var len = str.length;var str = “fugafuga”;if (str.length === len) {// 正常} else {// 例外処理!?}
ཧ͢Δঢ়ଶΛ࠷খݶʹ͢ΔΞϓϦέʔγϣϯͷશͯͷঢ়ଶҰͭͷλεΫͷঢ়ଶ
ঢ়ଶ͔ΒΛಋ͘λεΫϦετΛ༩͑ΔͱʜඞཁͳΛλεΫϦετ͔Βಋ͖ग़ͯ͠ʜ)5.-Λॻ͖ग़͢ ؔܕ 'VODUJPOBM
ΞΫγϣϯͷͨͼʹ࣍ͷঢ়ଶ"DUJPOΛड͚ͯࠓͷঢ়ଶ͔Β৽͍͠ঢ়ଶʢߋ৽͠ͳ͍ʣ
ΞΫγϣϯܾΊ͓ͯ͘
Ͳ͏ͬͯߋ৽͢Δʁ.PEFM .PEFM .PEFMλεΫՃ λεΫྃྃࡁΈλεΫআೖྗ͞ΕͨΞΫγϣϯʹԠͯ͠৽͍͠ঢ়ଶʹ͢ΔʹϦΞΫςΟϒ(Reactive)
·ͱΊ
ϦΞΫςΟϒདྷͯ·͢• ϦΞΫςΟϒͩΜͩΜਁಁ͖ͯͨ͠• React.jsͱͦͷϑϨʔϜϫʔΫ(Flux)• FluxϑϨʔϜϫʔΫͷҰͭReduxelmΛࢀߟʹ͍ͯ͠Δ
ঢ়ଶΛѲͯ͠·͔͢ʁ• Β͵ؒʹ૿͑Δϑϥά• ঢ়ଶύλʔϯͷݟམͱ͠ɾෆ߹• ͦΕɺؔܕͷߟ͑ํͰ͍͚·͢Αʁ• ඞཁͳঢ়ଶΛߜΓࠐΉ• ঢ়ଶ͔ΒΛऔΓग़͢Α͏ʹ͢Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠