Upgrade to Pro — share decks privately, control downloads, hide ads and more …

学ばないDSL (渋谷.rb)

学ばないDSL (渋谷.rb)

渋谷.rb[:20140115] http://www.zusaar.com/event/2687020 で発表

USAMI Kenta

January 15, 2014
Tweet

More Decks by USAMI Kenta

Other Decks in Programming

Transcript

  1. scripter = ->(*args){ ->{ puts args.join("\n") } } title =

    ->(text) { "ʰ#{text}ʱ\n" } paragraph = ->(*args){ args.join("\n") + "\n" } chara = ->(name) { ->(text){ "#{name}ʮ#{text}ʯ"} } ryu = chara[:Ϧϡ΢]; tak = chara[:͔ͨ͠] script = scripter[title[:ԶΑΓڧౕ͍ʹɺձ͍ʹߦ͘], paragraph[:ϐϯϙʔϯ, ryu[:͜Μʹͪ͸], tak[:͸͍Ͳͳͨ]], paragraph[ryu[:͍·ͪΐͬͱ͍͍Ͱ͔͢], tak[:͜Ε͔Βग़͔͚·͢]], paragraph[ryu[:ޕޙग़ۈͰ͔͢ʁ], tak[:͸͍]], paragraph[ryu[:ڧͦ͏Ͱ͢Ͷ], tak[:ͳʹ͕Ͱ͔͢]], paragraph[ryu[:ଶ౓͕]], paragraph[:Ϧϡ΢͸ɺࣗ෼ΑΓڧͦ͏ͳౕʹɺձ͍ʹ͍ͬͨͷͩͬͨɻɹ׬] ] script[] スクリプト(台本)
  2. ʰԶΑΓڧౕ͍ʹɺձ͍ʹߦ͘ʱ ! ϐϯϙʔϯ Ϧϡ΢ʮ͜Μʹͪ͸ʯ ͔ͨ͠ʮ͸͍Ͳͳͨʯ ! Ϧϡ΢ʮ͍·ͪΐͬͱ͍͍Ͱ͔͢ʯ ͔ͨ͠ʮ͜Ε͔Βग़͔͚·͢ʯ ! Ϧϡ΢ʮޕޙग़ۈͰ͔͢ʁʯ

    ͔ͨ͠ʮ͸͍ʯ ! Ϧϡ΢ʮڧͦ͏Ͱ͢Ͷʯ ͔ͨ͠ʮͳʹ͕Ͱ͔͢ʯ ! Ϧϡ΢ʮଶ౓͕ʯ ! Ϧϡ΢͸ɺࣗ෼ΑΓڧͦ͏ͳౕʹɺձ͍ʹ͍ͬͨͷͩͬͨɻɹ׬ 台本を出力(実行結果)
  3.    _    \ヽ, ,、      `''|/ノ       .|

     _    |  \`ヽ、|    \, V       `L,,_       |ヽ、)      .|     /           ,、     /        ヽYノ    .|       r''ヽ、.|    |        `ー-ヽ|ヮ     |            `|    ヽ,    ,r      .|      ヽ,r'''ヽ!'-‐'''''ヽ、ノ  ,,,..---r'",r, , 、`ヽ、 ヾ  ヽ、__/ ./ハレハ i`ヽ、 `''r`ミ_    .レ//r,,,、 レ'レハヾ,  L,,_ `ヽ、     "レ, l;;;l   l;;;l`i.リレ' リ ̄~~      ヽ、 ワ `"/-'`'`'        `''''''''"      ┼ヽ  -|r‐、. レ |                  d⌒) ./| _ノ  __ノ