Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SE-XXXX Function Builders を読み解く / Reading the s...
Search
Kuniwak
PRO
July 08, 2019
Programming
5
1k
SE-XXXX Function Builders を読み解く / Reading the spec of Function Builders
Kuniwak
PRO
July 08, 2019
Tweet
Share
More Decks by Kuniwak
See All by Kuniwak
テストケースの名前はどうつけるべきか?
orgachem
PRO
1
510
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
4.3k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
160
HOME VR
orgachem
PRO
1
800
uGUI の自動操作の考え方と操作方法
orgachem
PRO
1
1.5k
Swift Macro に備えて構文木を 10min で学ぶ / Learn Syntax Tree for Swift Macro in 10 minutes
orgachem
PRO
1
1.4k
SoftWare Engineer in Test のおしごと / What is SWET
orgachem
PRO
1
1.1k
私と Nature Remo E / Nature Remo E
orgachem
PRO
0
27k
存在しないアセットへの参照と 未公開アセットでのネタバレに どう立ち向かうか / How to prevent missing assets and spoilers by assets
orgachem
PRO
1
1.2k
Other Decks in Programming
See All in Programming
エラーって何種類あるの?
kajitack
5
310
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
310
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
100
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
510
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
380
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
160
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
400
Create a website using Spatial Web
akkeylab
0
300
C++20 射影変換
faithandbrave
0
530
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
46
31k
童醫院敏捷轉型的實踐經驗
cclai999
0
190
ReadMoreTextView
fornewid
1
480
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
KATA
mclloyd
29
14k
Speed Design
sergeychernyshev
32
1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Building Applications with DynamoDB
mza
95
6.5k
Six Lessons from altMBA
skipperchong
28
3.8k
A Modern Web Designer's Workflow
chriscoyier
694
190k
How GitHub (no longer) Works
holman
314
140k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Transcript
4&9999 'VODUJPO#VJMEFST ΛಡΈղ͘ Kuniwak - DeNA Co.,Ltd. 2019.07.08
"CPVUNF
,VOJXBL w ॴଐˠ • github.com/Kuniwak • qiita.com/Kuniwak w ߏจղੳ୯ମςετ͕ w
"QQ$PEF͍ 3
ࠓճ͓͍͑ͨ͜͠ͱ
4XJGU6*ͷཁૉٕज़Ͱ͋Δ 'VODUJPO#VJMEFSTͷ ఏҊҙਤͱৄࡉΛֶͿ 5
6 @TupleBuilder func build() -> (Int, Int, Int) { 1
2 3 } func build() -> (Int, Int, Int) { let _a = 1 let _b = 2 let _c = 3 return TupleBuilder.buildBlock(_a, _b, _c) } 'VODUJPO#VJMEFST্ΛԼʹίϯύΠϥ͕มܗ͢Δ༷ʢະ֬ఆʣ
w ϦετߏͷߏஙΛॿ͚Δ%4-తͳݴޠػೳΛೖΕ͍ͨ w Ϣʔβʔ͕ఆٛͷͨΊͷ!GVODUJPO#VJMEFSΞϊςʔγϣϯ ͱGVODUJPOCVJMEFSܕΛೖΕ·͢ w ίϯύΠϥ͕GVODUJPOCVJMEFSܕͷҾϒϩοΫͷ %4-ʢ4XJGUͷαϒηοτʣΛมܗͯ͠4XJGUݴޠ ༁ͯ͠ίϯύΠϧ͠·͢ ·ͱΊɿ'VODUJPO#VJMEFSTͱ
7
ൃදܗࣜ
ຖिਫ༵ʹࣾͰ։࠵͞Ε͍ͯΔɺ 4XJGU8FEOFTEBZͱ͍͏ษڧձͱ ಉ͡ܗࣜͰΏΔΏΔΈ͍͖ͯ·͢ 9
10 4XJGU8FEOFTEBZൃͷ4XJGUͷߩݙ
Ͱݟ͍͖ͯ·͠ΐ͏
https://forums.swift.org/t/important- evolution-discussion-of-the-new-dsl- feature-behind-swiftui/25168 12 TXJGUFWPMVUJPOͰͷެ։ͱಉ࣌ʹGPSVNQPTU͞ΕͨίϝϯτͰ͢ɻ
https://github.com/apple/ swift-evolution/pull/1046 13 TXJGUFWPMVUJPO্Ͱ࠷৽ͷͷΛѻ͍·͢ɻ͔ͨ͠͠Β GPSVNͰ͞Βʹ͕ٞਐΜͰ͍Δ͔͠Ε·ͤΜ͕͝༰͍ࣻͩ͘͞ɻ
https://docs.swift.org/swift- book/ReferenceManual/ AboutTheLanguageReference.html 14 TUBUFNFOUFYQSFTTJPOΛΔͨΊͷࢿྉͰ͢ɻ
w ϦετߏͷߏஙΛॿ͚Δ%4-తͳݴޠػೳΛೖΕ͍ͨ w Ϣʔβʔ͕ఆٛͷͨΊͷ!GVODUJPO#VJMEFS ΞϊςʔγϣϯͱGVODUJPOCVJMEFSܕΛೖΕ·͢ w ίϯύΠϥ͕GVODUJPOCVJMEFSܕͷҾϒϩοΫͷ %4-ʢ4XJGUͷαϒηοτʣΛมܗͯ͠4XJGUݴޠ ༁ͯ͠ίϯύΠϧ͠·͢ 'VODUJPO#VJMEFSTͱ
15