学ばないDSL

706 views

Published on

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

Ruby - ラムダ式で学ぶクロージャとDSL - Qiita
http://qiita.com/tadsan/items/a40b2a9c1f7768abd3bb

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
706
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

学ばないDSL

  1. 1. 学ばないDSL 2014/01/15 @tadsan 渋谷.rb[:20140115]
  2. 2. お前誰よ うさみけんた 2012年の夏まで北海道で自宅警備 最近はずっとPHPばっかり書いてます ぷろぐらみんぐ言語が好きです 渋谷.rbの参加は3回め(だった気がする)
  3. 3. 自己紹介
  4. 4. ぼくの好きなプログラミング
  5. 5. スクリプト(台本) scripter title = ->(*args){ ->{ puts args.join("n") } } = ->(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[]
  6. 6. 台本を出力(実行結果) 『俺より強い奴に、会いに行く』 ! ピンポーン リュウ「こんにちは」 たかし「はいどなた」 ! リュウ「いまちょっといいですか」 たかし「これから出かけます」 ! リュウ「午後出勤ですか?」 たかし「はい」 ! リュウ「強そうですね」 たかし「なにがですか」 ! リュウ「態度が」 ! リュウは、自分より強そうな奴に、会いにいったのだった。 完
  7. 7. 何をしてるのか ラムダ式とクロージャ 可変長引数を結合してる ドメイン固有言語 - Wikipedia ラムダ式で学ぶクロージャとDSL 意外と移植性が高い!
  8. 8. 最近読んだ本
  9. 9. 世間には根強く 「えっコンパイラも実装したことないの」 「Lispインタプリタとか課題で実装したわー」 ! といった声がある
  10. 10. 言語処理系の基礎が 完全無料で学べる!
  11. 11. 実装してみた 出落ち!
  12. 12. MatzLisp!
  13. 13. 本書中のサンプルコードは
 ふつうのRubyで書かれてます ! ご安心ください
  14. 14.    _    \ヽ, ,、      `''|/ノ       .|  _    |  \`ヽ、|    \, V       `L,,_       |ヽ、)      .|     /           ,、     /        ヽYノ    .|       r''ヽ、.|    |        `ー-ヽ|ヮ     |            `|    ヽ,    ,r      .|      ヽ,r'''ヽ!'-‐'''''ヽ、ノ  ,,,..---r'",r, , 、`ヽ、 ヾ  ヽ、__/ ./ハレハ i`ヽ、 `''r`ミ_    .レ//r,,,、 レ'レハヾ,  L,,_ `ヽ、     "レ, l;;;l   l;;;l`i.リレ' リ ̄~~      ヽ、 ワ `"/-'`'`'        `''''''''"      ┼ヽ  -|r‐、. レ |                  d⌒) ./| _ノ  __ノ 使用フォント セプテンバーM・L

×