Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
学ばないDSL (渋谷.rb)
Search
USAMI Kenta
January 15, 2014
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
学ばないDSL (渋谷.rb)
渋谷.rb[:20140115]
http://www.zusaar.com/event/2687020
で発表
USAMI Kenta
January 15, 2014
More Decks by USAMI Kenta
See All by USAMI Kenta
Rubicureに学ぶメタプログラミング
zonuexe
0
240
Other Decks in Programming
See All in Programming
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
220
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.5k
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
210
Spec-driven Development with AI
simas
PRO
0
2.2k
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
220
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
140
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
300
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
150
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
280
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
280
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
310
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
970
Music & Morning Musume
bryan
48
7.5k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
550
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
How to make the Groovebox
asonas
2
2.5k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
470
Transcript
学ばないDSL 2014/01/15 @tadsan 渋谷.rb[:20140115]
お前誰よ うさみけんた 2012年の夏まで北海道で自宅警備 最近はずっとPHPばっかり書いてます ぷろぐらみんぐ言語が好きです 渋谷.rbの参加は3回め(だった気がする)
自己紹介
ぼくの好きなプログラミング
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[] スクリプト(台本)
ʰԶΑΓڧౕ͍ʹɺձ͍ʹߦ͘ʱ ! ϐϯϙʔϯ Ϧϡʮ͜Μʹͪʯ ͔ͨ͠ʮ͍Ͳͳͨʯ ! Ϧϡʮ͍·ͪΐͬͱ͍͍Ͱ͔͢ʯ ͔ͨ͠ʮ͜Ε͔Βग़͔͚·͢ʯ ! Ϧϡʮޕޙग़ۈͰ͔͢ʁʯ
͔ͨ͠ʮ͍ʯ ! Ϧϡʮڧͦ͏Ͱ͢Ͷʯ ͔ͨ͠ʮͳʹ͕Ͱ͔͢ʯ ! Ϧϡʮଶ͕ʯ ! ϦϡɺࣗΑΓڧͦ͏ͳౕʹɺձ͍ʹ͍ͬͨͷͩͬͨɻɹ 台本を出力(実行結果)
何をしてるのか ラムダ式とクロージャ 可変長引数を結合してる ドメイン固有言語 - Wikipedia ラムダ式で学ぶクロージャとDSL 意外と移植性が高い!
最近読んだ本
世間には根強く 「えっコンパイラも実装したことないの」 「Lispインタプリタとか課題で実装したわー」 ! といった声がある
None
言語処理系の基礎が 完全無料で学べる!
実装してみた 出落ち!
MatzLisp!
本書中のサンプルコードは ふつうのRubyで書かれてます ! ご安心ください
_ \ヽ, ,、 `''|/ノ .|
_ | \`ヽ、| \, V `L,,_ |ヽ、) .| / ,、 / ヽYノ .| r''ヽ、.| | `ー-ヽ|ヮ | `| ヽ, ,r .| ヽ,r'''ヽ!'-‐'''''ヽ、ノ ,,,..---r'",r, , 、`ヽ、 ヾ ヽ、__/ ./ハレハ i`ヽ、 `''r`ミ_ .レ//r,,,、 レ'レハヾ, L,,_ `ヽ、 "レ, l;;;l l;;;l`i.リレ' リ ̄~~ ヽ、 ワ `"/-'`'`' `''''''''" ┼ヽ -|r‐、. レ | d⌒) ./| _ノ __ノ