学ばないdsl

15
学ばない DSL 2014/01/15 @tadsan 渋谷.rb[:20140115]

Upload: tsugio-jisami

Post on 28-May-2015

308 views

Category:

Technology


1 download

DESCRIPTION

渋谷.rb[:20140115] http://www.zusaar.com/event/2687020 で発表 Ruby - ラムダ式で学ぶクロージャとDSL - Qiita http://qiita.com/tadsan/items/a40b2a9c1f7768abd3bb

TRANSCRIPT

Page 1: 学ばないDSL

学ばないDSL

2014/01/15 @tadsan 渋谷.rb[:20140115]

Page 2: 学ばないDSL

お前誰よ

うさみけんた

2012年の夏まで北海道で自宅警備

最近はずっとPHPばっかり書いてます

ぷろぐらみんぐ言語が好きです

渋谷.rbの参加は3回め(だった気がする)

Page 3: 学ばないDSL

自己紹介

Page 4: 学ばないDSL

ぼくの好きなプログラミング

Page 5: 学ばないDSL

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[]

スクリプト(台本)

Page 6: 学ばないDSL

『俺より強い奴に、会いに行く』!ピンポーンリュウ「こんにちは」たかし「はいどなた」!リュウ「いまちょっといいですか」たかし「これから出かけます」!リュウ「午後出勤ですか?」たかし「はい」!リュウ「強そうですね」たかし「なにがですか」!リュウ「態度が」!リュウは、自分より強そうな奴に、会いにいったのだった。 完

台本を出力(実行結果)

Page 7: 学ばないDSL

何をしてるのか

ラムダ式とクロージャ

可変長引数を結合してる

ドメイン固有言語 - Wikipedia

ラムダ式で学ぶクロージャとDSL

意外と移植性が高い!

Page 8: 学ばないDSL

最近読んだ本

Page 9: 学ばないDSL

世間には根強く 「えっコンパイラも実装したことないの」 「Lispインタプリタとか課題で実装したわー」

!

といった声がある

Page 11: 学ばないDSL

言語処理系の基礎が 完全無料で学べる!

Page 12: 学ばないDSL

実装してみた出落ち!

Page 13: 学ばないDSL

MatzLisp!

Page 14: 学ばないDSL

本書中のサンプルコードはふつうのRubyで書かれてます

!

ご安心ください

Page 15: 学ばないDSL

使用フォント セプテンバーM・L

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