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
本当だってば!俺もTRICK 2022に入賞してたんだってば!
Search
jinroq
March 20, 2025
Programming
720
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
本当だってば!俺もTRICK 2022に入賞してたんだってば!
Fukuoka.rb #397 〜RubyKaigi 2025の機運〜
jinroq
March 20, 2025
More Decks by jinroq
See All by jinroq
Back to the roots of date
jinroq
0
2.5k
Fukuoka.rb 2023 年度活動報告
jinroq
0
600
TRICK 2022 に入選した話
jinroq
0
380
RubyKaigiとMicrosoftと私
jinroq
0
330
msgraph: Microsoft Graph API Client with Ruby
jinroq
0
420
Fukuoka.rb 2019活動報告・2020抱負
jinroq
0
400
福岡の方から参りました Fukuoka.rb です
jinroq
0
2.1k
Microsoft Graph API Client and OpenAPI
jinroq
0
1.3k
Fukuoka.rb #150 LT
jinroq
0
360
Other Decks in Programming
See All in Programming
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
16k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
22
22k
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
phperだってパンチカードでコーディングしたい
o0h
PRO
0
290
Domain-Driven Transformation
hschwentner
2
2.3k
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
460
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
140
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.3k
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.1k
SREの越境 / SRE Collaboration
y0hgi
2
300
golang-bob.pdf
iwatsukayura
0
130
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
The agentic SEO stack - context over prompts
schlessera
0
970
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Between Models and Reality
mayunak
4
490
The SEO identity crisis: Don't let AI make you average
varn
0
590
The Language of Interfaces
destraynor
162
27k
What's in a price? How to price your products and services
michaelherold
247
13k
Code Review Best Practice
trishagee
74
20k
WCS-LA-2024
lcolladotor
0
880
Transcript
ຊͩͬͯʂ Զ TRICK 2022 ʹ ೖͯͨ͠Μͩͬͯʂʂ Fukuoka.rb #397 ʙRubyKaigi 2025
ͷػӡʙ 2025/03/19 SAITOH Jinroq
self.inspect => { name: { x: “jimlock” github: “jinroq” },
organization: “Ruby Development Inc.”, community: “Fukuoka.rb” }
https://rubykaigi.org/2025/
https://ruby-development-inc.connpass.com/event/349086/
https://rubykaigi.org/2025/presentations/tric.html#day1
TRICK is Կʁ
TRICK 2022 “Returns”
TRICK 2022 “Returns” ͜͜ʹॻ͍ͯ͋Δ
TRICK is Կʁ • Transcendental • Ruby • Imbroglio •
Contest • for RubyKaigi
TRICK is Կʁ • Transcendental • Ruby • Imbroglio •
Contest • for RubyKaigi • ݱੈརӹͷͳ͍ • ҙຯෆ໌ͳ • Ruby ॲཧܥͷҙ֎ͳݎ࿚ੑ • Ruby ॲཧܥͷҙ֎ͳҠ২ੑ • ͋Δछͷਆൿੑʢͱ༷όάʣ
TRICK is Կʁ • Transcendental • Ruby • Imbroglio •
Contest • for RubyKaigi • ݱੈརӹͷͳ͍ • ҙຯෆ໌ͳ • Ruby ॲཧܥͷҙ֎ͳݎ࿚ੑ • Ruby ॲཧܥͷҙ֎ͳҠ২ੑ • ͋Δछͷਆൿੑʢͱ༷όάʣ
TRICK is Կʁ • Transcendental • Ruby • Imbroglio •
Contest • for RubyKaigi • ݱੈརӹͷͳ͍ • ҙຯෆ໌ͳ • Ruby ॲཧܥͷҙ֎ͳݎ࿚ੑ • Ruby ॲཧܥͷҙ֎ͳҠ২ੑ • ͋Δछͷਆൿੑʢͱ༷όάʣ
TRICK is Կʁ • Transcendental • Ruby • Imbroglio •
Contest • for RubyKaigi • ݱੈརӹͷͳ͍ • ҙຯෆ໌ͳ • Ruby ॲཧܥͷҙ֎ͳݎ࿚ੑ • Ruby ॲཧܥͷҙ֎ͳҠ২ੑ • ͋Δछͷਆൿੑʢͱ༷όάʣ
TRICK is Կʁ • Transcendental • Ruby • Imbroglio •
Contest • for RubyKaigi • ݱੈརӹͷͳ͍ • ҙຯෆ໌ͳ • Ruby ॲཧܥͷҙ֎ͳݎ࿚ੑ • Ruby ॲཧܥͷҙ֎ͳҠ২ੑ • ͋Δछͷਆൿੑʢͱ༷όάʣ
TRICK is Կʁ • Transcendental • Ruby • Imbroglio •
Contest • for RubyKaigi • ݱੈརӹͷͳ͍ • ҙຯෆ໌ͳ • Ruby ॲཧܥͷҙ֎ͳݎ࿚ੑ • Ruby ॲཧܥͷҙ֎ͳҠ২ੑ • ͋Δछͷਆൿੑʢͱ༷όάʣ ͓͠ΖίʔυΛॻ͍ͯΈΜͳͰস͓͏
None
σϞ
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join)
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join)
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join)
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join)
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join)
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join)
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join)
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join) #=> 116 #=> 114 #=> 105 #=> 99 #=> 107 #=> 82 #=> 80 #=> 82 #=> 82
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join)
ίʔυղઆ puts( { 2*0-2-2 => 2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0*2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0, 2+2/2+0
=> 2*2*2+0+2-2/2+0+2*2*2+0+2*2*2+0-2+2+2+0+2*2*2+0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0*2+2*2 => 0+2*2*2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2/2, 2*0*2*2 => 2+0+2*2*2+0+2*2*2+0+2*2+2+0+2-2/2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2, 2/2+0-2 => 2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2-2-2+0-2-2-2+0+2+2+2+0+2+2+2+0+2*2*2+0+2*2*2+0+2+2+2+0, 2*2*2+0 => 2*2*2+0-2*2*2+0+2-2*2+0+2*2*2+0-2-2-2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2, 0<2|2-2 => 0+2+2+2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0-2*2*2+0-2*2*2+0+2*2, 2<0|2-2 => 2+0-2*2*2+0-2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2*2*2+0+2+2+2+0+2, }.map { _2.chr }.join) # -2 <= # 1 <= # 3 <= # 6 <= # 0 <= # -1 <= # 8 <= # true <= # false <=
ܦҢ
ܦҢ • େߐށ Ruby ձٞ 08 Ͱ tompng ͞Μ͕ʮ2020
2 ͱ 0 ͔͠ग़ͯ ͜ͳ͍ͷͰ Quine ͍͢͠ʯͱݴ͍ͬͯͨ • Quine: eval s="puts'eval s=‘+s.inspect” • 2022 2 ͱ 0 ͔͠ग़ͯ͜ͳ͍ͱؾ͍ͯ͠·ͬͨ • ͜ΕΛͬͯԿ͔Ͱ͖ͳ͍͔ߟ͑ͨ
ܦҢ • େߐށ Ruby ձٞ 08 Ͱ tompng ͞Μ͕ʮ2020
2 ͱ 0 ͔͠ग़ͯ ͜ͳ͍ͷͰ Quine ͍͢͠ʯͱݴ͍ͬͯͨ • Quine: eval s="puts'eval s=‘+s.inspect” • 2022 2 ͱ 0 ͔͠ग़ͯ͜ͳ͍ͱؾ͍ͯ͠·ͬͨ • ͜ΕΛͬͯԿ͔Ͱ͖ͳ͍͔ߟ͑ͨ
ܦҢ • େߐށ Ruby ձٞ 08 Ͱ tompng ͞Μ͕ʮ2020
2 ͱ 0 ͔͠ग़ͯ ͜ͳ͍ͷͰ Quine ͍͢͠ʯͱݴ͍ͬͯͨ • Quine: eval s="puts'eval s=‘+s.inspect” • 2022 2 ͱ 0 ͔͠ग़ͯ͜ͳ͍ͱؾ͍ͯ͠·ͬͨ • ͜ΕΛͬͯԿ͔Ͱ͖ͳ͍͔ߟ͑ͨ
ܦҢ • େߐށ Ruby ձٞ 08 Ͱ tompng ͞Μ͕ʮ2020
2 ͱ 0 ͔͠ग़ͯ ͜ͳ͍ͷͰ Quine ͍͢͠ʯͱݴ͍ͬͯͨ • Quine: eval s="puts'eval s=‘+s.inspect” • 2022 2 ͱ 0 ͔͠ग़ͯ͜ͳ͍ͱؾ͍ͯ͠·ͬͨ • ͜ΕΛͬͯԿ͔Ͱ͖ͳ͍͔ߟ͑ͨ
ݸਓతͳͱରࡦ
ݸਓతͳͱରࡦ • TRICK ͷաڈೖ࡞ͷΛߟ͑ͨ • ֶͷ͕ࣝཁ͢Δͷ͕ೖ࡞ʹଟ͍ • …͕ɺֶͷ͕ࣝօແͳͷͰ͖͋ΒΊͨ • Quine
͏͖ΒΕ͍ͯΔ • ιʔείʔυΛΞεΩʔΞʔτʹ͠ͳ͍ • ༏উແཧͩΖ͏͔Βɺ৹ࠪһͷ୭͔ʹ͞͞ΔͷΛ࡞Δ
ݸਓతͳͱରࡦ • TRICK ͷաڈೖ࡞ͷΛߟ͑ͨ • ֶͷ͕ࣝཁ͢Δͷ͕ೖ࡞ʹଟ͍ • …͕ɺֶͷ͕ࣝօແͳͷͰ͖͋ΒΊͨ • Quine
͏͖ΒΕ͍ͯΔ • ιʔείʔυΛΞεΩʔΞʔτʹ͠ͳ͍ • ༏উແཧͩΖ͏͔Βɺ৹ࠪһͷ୭͔ʹ͞͞ΔͷΛ࡞Δ
ݸਓతͳͱରࡦ • TRICK ͷաڈೖ࡞ͷΛߟ͑ͨ • ֶͷ͕ࣝཁ͢Δͷ͕ೖ࡞ʹଟ͍ • …͕ɺֶͷ͕ࣝօແͳͷͰ͖͋ΒΊͨ • Quine
͏͖ΒΕ͍ͯΔ • ιʔείʔυΛΞεΩʔΞʔτʹ͠ͳ͍ • ༏উແཧͩΖ͏͔Βɺ৹ࠪһͷ୭͔ʹ͞͞ΔͷΛ࡞Δ
ݸਓతͳͱରࡦ • TRICK ͷաڈೖ࡞ͷΛߟ͑ͨ • ֶͷ͕ࣝཁ͢Δͷ͕ೖ࡞ʹଟ͍ • …͕ɺֶͷ͕ࣝօແͳͷͰ͖͋ΒΊͨ • Quine
͏͖ΒΕ͍ͯΔ • ιʔείʔυΛΞεΩʔΞʔτʹ͠ͳ͍ • ༏উແཧͩΖ͏͔Βɺ৹ࠪһͷ୭͔ʹ͞͞ΔͷΛ࡞Δ
ݸਓతͳͱରࡦ • TRICK ͷաڈೖ࡞ͷΛߟ͑ͨ • ֶͷ͕ࣝཁ͢Δͷ͕ೖ࡞ʹଟ͍ • …͕ɺֶͷ͕ࣝօແͳͷͰ͖͋ΒΊͨ • Quine
͏͖ΒΕ͍ͯΔ • ιʔείʔυΛΞεΩʔΞʔτʹ͠ͳ͍ • ༏উແཧͩΖ͏͔Βɺ৹ࠪһͷ୭͔ʹ͞͞ΔͷΛ࡞Δ
ݸਓతͳͱରࡦ • TRICK ͷաڈೖ࡞ͷΛߟ͑ͨ • ֶͷ͕ࣝཁ͢Δͷ͕ೖ࡞ʹଟ͍ • …͕ɺֶͷ͕ࣝօແͳͷͰ͖͋ΒΊͨ • Quine
͏͖ΒΕ͍ͯΔ • ιʔείʔυΛΞεΩʔΞʔτʹ͠ͳ͍ • ༏উແཧͩΖ͏͔Βɺ৹ࠪһͷ୭͔ʹ͞͞ΔͷΛ࡞Δ
mame ͷ৺ʹ༷ͬͨ͞͞
͔͞͞ͳͩ͜ΘΓ
͔͞͞ͳͩ͜ΘΓ • Quine ͷ͓·͡ͳ͍ eval $s=%w().join(“") Θͳ͍ • Quine ΛΔͱͯ͠ɺ͜ͷ͓·͡ͳ͍Θͳ͍
• Ruby ͷ৽͍͠ػೳΛ͍͍ͨ • 2.7 ͔Βࡌͨ͠ Numbered parameter Λͬͨ
͔͞͞ͳͩ͜ΘΓ • Quine ͷ͓·͡ͳ͍ eval $s=%w().join(“") Θͳ͍ • Quine ΛΔͱͯ͠ɺ͜ͷ͓·͡ͳ͍Θͳ͍
• Ruby ͷ৽͍͠ػೳΛ͍͍ͨ • 2.7 ͔Βࡌͨ͠ Numbered parameter Λͬͨ
͔͞͞ͳͩ͜ΘΓ • Quine ͷ͓·͡ͳ͍ eval $s=%w().join(“") Θͳ͍ • Quine ΛΔͱͯ͠ɺ͜ͷ͓·͡ͳ͍Θͳ͍
• Ruby ͷ৽͍͠ػೳΛ͍͍ͨ • 2.7 ͔Βࡌͨ͠ Numbered parameter Λͬͨ
͔͞͞ͳͩ͜ΘΓ • Quine ͷ͓·͡ͳ͍ eval $s=%w().join(“") Θͳ͍ • Quine ΛΔͱͯ͠ɺ͜ͷ͓·͡ͳ͍Θͳ͍
• Ruby ͷ৽͍͠ػೳΛ͍͍ͨ • 2.7 ͔Βࡌͨ͠ Numbered parameter Λͬͨ
৹ࠪһͷධՁ
None
·ͱΊ
·ͱΊ • Ruby શવΘ͔Βͳ͍… • ࣄͰʹཱ͔ͭͲ͏͔͔Βͳ͍ • ϓϩάϥϜͰ༡Ϳͷָ͍͠ • RubyKaigi
2025 גࣜձࣾ Ruby ։ൃυϦϯΫΞοϓΛΓ·͢ • ͥͻ͝ࢀՃ͍ͩ͘͞