Slide 1

Slide 1 text

ؔ਺ܕݴޠͱࢲ • ϑΝϯΫγϣϯ۞ָ෦ • @color_box

Slide 2

Slide 2 text

ࣗݾ঺հ • @color_box • Ӭ࿨γεςϜϚωδϝϯτ • ޷͖ͳؔ਺͸map

Slide 3

Slide 3 text

ؔ਺ܕͷܦݧ • SML2ϲ݄ • Elixir3ϲ݄

Slide 4

Slide 4 text

ΞδΣϯμ • ࠷ॳʹ৮ͬͨؔ਺ܕݴޠ͔Βಘͨ΋ͷ • Elixirͷ࢓ࣄ͔Βಘͨ΋ͷ

Slide 5

Slide 5 text

࠷ॳʹ৮ͬͨؔ਺ܕݴޠ • SML(StandardMetaLanguage) • 8೥͘Β͍લ • ֶੜ࣌ͷ՝୊

Slide 6

Slide 6 text

hd::tl • ͦΕ·Ͱ৮ͬͨ͜ͱͷͳ͍Ϧετͷѻ͍ํʹ ۤ࿑ͨ͠ • hd::tlͰϦετͷૢ࡞Λߦ͏֓೦Λशಘ • ؔ਺ܕݴޠʹର͢Δҙຯෆ໌ײ

Slide 7

Slide 7 text

ҙຯෆ໌ײ • ࠷ॳ͸ۤखҙ͕ࣝ͋ͬͨ΋ͷͷɺ՝୊Ͱ໿50 ݸͷجຊతͳؔ਺Λ࠶࣮૷ • ͓ͳ͡Έͷؔ਺Λ࣮૷ • flatten,foldl,foldr,flat,map,filter,split

Slide 8

Slide 8 text

੍ݶ • Ұͭͷؔ਺ఆٛͷΈͰɺಗ໊ؔ਺Λ࢖Θͣʹ ߦ͏ͱ͍͏੍ݶ • جຊతͳॲཧΛ೺Ѳ͠࠶ؼॲཧʹ΋׳ΕΔ͜ ͱ͕Ͱ͖ͨ

Slide 9

Slide 9 text

جૅ஁࿉͕େࣄ • ॳݟͰΑ͘Θ͔Βͳ͍֓೦͕ग़͖ͯͨΒ • ෼͔ΔൣғͰशಘΛਐΊͯɺ܁Γฦ͢ɻ • ͢Δͱɺͦͷ͏ͪཧղͰ͖ΔΑ͏ʹͳΔɻ

Slide 10

Slide 10 text

༨ஊ • ͦͷ࣌ͷ՝୊Ͱ࡞ͬͨ΋ͷ͸ΦηϩͷAI • min−max๏ɺα-β๏

Slide 11

Slide 11 text

AI • 8*8ͷϚε໨ʹରͯ͠ɺͲͷϚε͕Ͳͷఔ౓ڧ͍͔ɺͱ ͍͏ධՁؔ਺Λ࡞੒ɻ • ͋ͱ͸ɺͲͷϚε໨ʹஔ͔Ε͔ͨΛ࠶ؼతʹνΣοΫ͠ ͍͖ͯɺ࠷ऴతʹ࠷΋ධՁͷߴ͍ɺϚε໨Λબ୒͢Δ • ద౰ͳධՁؔ਺Ͱ΋͋Δఔ౓ਂ͘ಡΉͱউͯͳ͍ • ίπ͸࢛۱ϚεͷධՁΛߴ͓ͯ͘͘͜͠ͱ

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Elixirͷ࢓ࣄ͔Βಘͨ΋ͷ

Slide 14

Slide 14 text

ͦ΋ͦ΋Elixirͱ͸ • ؆୯ʹݴ͏ͱElixir͸ErlangΛॻ͖΍ͨ͘͢͠ ΋ͷ

Slide 15

Slide 15 text

ͦ΋ͦ΋Elixirͱ͸ • Elixir͸Erlangͱಉ͡VM্Ͱಈ࡞͢Δؔ਺ܕݴޠ • Erlang͸whatappͳͲͷϢʔβʔ਺͕ଟ͍ΞϓϦέʔ γϣϯͰಈ࡞͍ͯ͠Δ • Erlang͸Ұൠతʹॻ͖ਏ͍ɺशख़ʹ͕͔͔࣌ؒΔͱ͍ ͏ଆ໘͕͋Δ • Elixir͸ॻ͖ਏ͍ͱ͍͏໰୊Λղܾͨ͠ݴޠ

Slide 16

Slide 16 text

Elixir Conf • 2017/4/1 • Elixir Conf 2017 • Elixir/ErlangͷࣄྫΛͨ͘͞Μฉ͘ • ߴෛՙʹڧ͍ݴޠͱͷ͜ͱͰɺϩϚϯΛײ͡Δɻ • ͍͔ͭElixirΛ࢖ͬͯ࢓ࣄͯ͠Έ͍ͨͳͱࢥͬͨ

Slide 17

Slide 17 text

whaapp • ͪͳΈʹ • whatappͷϢʔβʔ਺͸9000ສ • ͦΕΛ50ਓͷΤϯδχΞͰࢧ͍͑ͯΔ • Ұਓ͋ͨΓ180ສϢʔβʔΛࢧ͑ΕΔܭࢉ • ਺ࣈ͸ 2015/09

Slide 18

Slide 18 text

࢓ࣄͰElixir • Ҋ֎ૣͦ͘ͷΑ͏ͳػձʹܙ·ΕΔ • 4,5݄͸ElixirͰ࢓ࣄ

Slide 19

Slide 19 text

࢓ࣄ্Ͱಘֶͨͼ • ࢓ࣄͰೋϲ݄͘Β͍ElixirΛ৮ͬͨͷͰͦͷ࣌ ͷ஌ݟΛڞ༗

Slide 20

Slide 20 text

mix • ElixirͷϏϧυπʔϧɺґଘ؅ཧπʔϧͱͯ͠ͷଆ໘΋͋Δ • ElixirٴͼErlangͷϥΠϒϥϦ΋ಡΈࠐΊΔɻ • ґଘղܾ࣌ʹϓϩδΣΫτͰ࢖༻͢ΔϥΠϒϥϦͷίʔυ ΛϓϩδΣΫτ௚Լʹclone͢Δ • ElixirͰ࢖͑ΔϥΠϒϥϦʹ͸໌Β͔ʹϝϯς͞Εͯͳ͍΋ ͷ΋͋ͬͨΓ͢ΔͷͰ஫ҙ͕ඞཁɻ

Slide 21

Slide 21 text

࢓ࣄͰ࢖ͬͨϥΠϒϥϦ • Cowboy • Ecto

Slide 22

Slide 22 text

Cowboy • ϚΠΫϩαʔϏεͷҰ෦ͱͯ͠ͷAPIαʔόΛ ͜ΕͰ࡞੒ • Elixir੡ͷWebFWͱͯ͠Phoenix͕༗໊͕ͩɺ ࠓճ͸࠾༻ͤͣ • ୯७ͳAPIʹPhoenix͸େ͖͗͢ΔͨΊ

Slide 23

Slide 23 text

Cowboy REST Flowchart • CowboyΛ࢖͏ͳΒ཈͓͑ͯ͘ͱศར • ֤ίʔϧόοΫ͕ͲͷΑ͏ʹݺ͹ΕΔ͔͕Θ ͔Δ • https://ninenines.eu/docs/en/cowboy/1.0/ guide/rest_flowcharts/

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Ecto • DB wrapper • DB઀ଓʹ࢖༻͠ɺύϥϝʔλόϦσʔγϣϯʹ΋࢓༷ • ֎෦APIΛୟ͘ࡍͷϦΫΤετߏ଄ମΛEctoͰఆٛ(DB ΁ͷอଘ͸ߦΘͳ͍) • ϦΫΤετΛ࣮ࡍʹߦ͏લʹɺߏ଄ମʹηοτ͞Ε͍ͯ Δ஋͕ຊ౰ʹਖ਼͍͔͠ͷόϦσʔγϣϯΛߦ͍͔ͨͬͨ

Slide 26

Slide 26 text

ࠔͬͨ࣌ͷࢀরઌ • HexDocͱ࣮૷ΛݟΕ͹͍͍ͩͨ෼͔Δɻ

Slide 27

Slide 27 text

HexDoc • ॳΊͯݟΔϥΠϒϥϦ΍ؔ਺Λ࢖͏࣌͸·ͣ ͜͜ΛݟΔɻ • Ұ௨Γ໨Λ௨͢ͱͳΜͱͳ͘࢖͍ํ͕Θ͔ Δɻ

Slide 28

Slide 28 text

࣮૷ • ͦΕͰ΋Α͘Θ͔Βͳ͍࣌͸࣮૷΋ݟΔ • ϓϩδΣΫτͰ࢖༻͢Δίʔυ͸deps௚Լʹ શͯೖͬͯ͘Δ • ͔ͩΒͦͷؾʹͳΕ͹શ෦ಡΊΔ

Slide 29

Slide 29 text

Erlang੡ϥΠϒϥϦ • Elixir͸ErlangͰॻ͔ΕͨϥΠϒϥϦ΋࢖༻Մೳɻ • Erlang੡ͷϥΠϒϥϦ΋ಡΉඞཁ͕͋Δ • ElixirΛ৮Δʹ͸Erlangͷ஌ࣝ͸ඞਢ • ޙड़ͷύλʔϯϚονΛཧղ͍ͯ͠ΔͱɺErlang ͷίʔυ΋ͳΜͱͳ͘ಡΊΔΑ͏ʹͳΔɻ

Slide 30

Slide 30 text

σόοά࣌ͷ͋Ε͜Ε • iexίϚϯυͰ্ཱ͕ͪΔREPL؀ڥ͕ศར • iex -S mixͰϓϩδΣΫτͷίʔυΛऔΓࠐΜ ͰREPL؀ڥΛ্ཱͪ͛Δ͜ͱ͕Ͱ͖Δɻ • ࣗ࡞ͷΫϥεΛݺͼग़ͯ͠ɺ௚઀ςετՄ ೳɻ

Slide 31

Slide 31 text

σόοά࣌ʹΑ͘࢖͏΋ͷ • IO.inspects() • IEx.pry

Slide 32

Slide 32 text

IO.inspects() • ΦϒδΣΫτΛೖΕΕ͹ͦΕʹؔ͢Δ৘ใΛ ు͖ग़ͯ͘͠ΕΔ • printσόοά࣌ʹଟ༻

Slide 33

Slide 33 text

IEx.pry • σόοΨ • εςοϓ࣮ߦ͸Ͱ͖ͳ͍ • Ұ࣌ఀࢭͨ͠ՕॴͰ೚ҙͷΦϒδΣΫτͷத ਎Λ֬ೝՄೳ

Slide 34

Slide 34 text

ϨϏϡʔͰ਎ʹ͚ͭͨ΋ͷ • ύλʔϯϚονͷॏཁੑ • ύλʔϯϚονͷࢦఠΛͨ͘͞Μ௖͍ͨɻ

Slide 35

Slide 35 text

ύλʔϯϚονͷछྨ • caseΛ࢖͏λΠϓ • ؔ਺ͷγάωνϟͰϚονͤ͞ΔλΠϓ • =୯ମͰϚονͤ͞ΔλΠϓ

Slide 36

Slide 36 text

caseΛ࢖͏λΠϓ • ࠷΋Ұൠతʁ • ୯Ұͷؔ਺ͷதʹଘࡏ͢Δ

Slide 37

Slide 37 text

Slide 38

Slide 38 text

ؔ਺ͷγάωνϟͰϚονͤ͞ ΔλΠϓ • ෳ਺ͷؔ਺Λఆٛͯ͠ɺݺͼग़࣌͠ʹͦΕΒ ͕੾ΓସΘΔ

Slide 39

Slide 39 text

Slide 40

Slide 40 text

=୯ମͰϚονͤ͞ΔλΠϓ • ୅ೖͰ͸ͳ͘ύλʔϯϚον

Slide 41

Slide 41 text

Slide 42

Slide 42 text

Մಡੑͷ޲্ • ύλʔϯϚονΛ͏·͘࢖͏ͱՄಡੑΛ্͛ ΕΔ

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

ྫ • ؔ਺ͷҾ਺ʹରͯ͠caseʹΑΔύλʔϯϚο νΛ͢Δͷ͸NG • ؔ਺ͷγάωνϟͰϚον͢Δ • ͜ΕʹΑͬͯݸʑͷؔ਺͕খ͘͞ͳΓɺՄಡ ੑ্͕͕Δ

Slide 46

Slide 46 text

༨ஊ • ύλʔϯϚον͕Θ͔ΔͱErlang΋Կͱͳ͘ ಡΊΔΑ͏ʹͳΔ(ؾ͕͢Δ) • ύλʔϯϚονʹ͍ͭͯ৭ʑࢦಋΛड͚ͨ ޙɺhex಺ͷErlangϥΠϒϥϦΛಡΜͰΈΔ ͱɺલΑΓ΋ಡΊΔΑ͏ʹͳ͍ͬͯΔɻ

Slide 47

Slide 47 text

ࠓ೔࿩ͨ͜͠ͱ • ؔ਺ܕݴޠͷ࠷ॳͷนΛಥഁ͢ΔͳΒ৭Μͳ ؔ਺Λ࠶࣮૷͢Δͱ৭ʑΘ͔ΔΑ͏ʹͳΔ • Elixir։ൃ࣌ͷ͋Ε͜Ε