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
関数の話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yuroyoro
July 13, 2016
Programming
18k
20
Share
関数の話
Supershipの社内勉強会で使ったやつ
yuroyoro
July 13, 2016
More Decks by yuroyoro
See All by yuroyoro
Goに無名関数の糖衣構文いれたらどうなるの? / Considering the introduction of the anonymous function syntax sugar into Go
yuroyoro
4
3.6k
Scala で 作る奇妙なプログラミング言語??
yuroyoro
4
16k
Other Decks in Programming
See All in Programming
Codex の「自走力」を高める
yorifuji
0
1.3k
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
800
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
210
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.2k
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5.3k
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
230
飯MCP
yusukebe
0
440
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
740
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
330
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
250
おれのAgentic Coding 2026/03
tsukasagr
1
120
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
310
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
Code Review Best Practice
trishagee
74
20k
It's Worth the Effort
3n
188
29k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Darren the Foodie - Storyboard
khoart
PRO
3
3.1k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
GraphQLとの向き合い方2022年版
quramy
50
14k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
250
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
Typedesign – Prime Four
hannesfritz
42
3k
Transcript
ؔͷ !ZVSPZPSP
ؔͱ
Z G Y ೖྗYʹରͯ͠ɺग़ྗZͷΛܾఆ͢Δنଇ
" # $ % *OU 4USJOH
ࣸ૾ͭͷू߹ͷରԠؔ
JOU TUS JOH ू߹ܕͱߟ͑ΔͱɺܕͱܕͷରԠنଇ
͕ؔ ϑΝʔετΫϥε
MFUGaY TIPX Y มʹʮؔʯΛೖ ଋറ Ͱ͖Δ )BTLFMM
G Y \YUP@T ^ มʹʮؔʯΛೖ ଋറ Ͱ͖Δ 3VCZ
DPOTUG Y \SFUVSOYUP4USJOH ^ มʹʮؔʯΛೖ ଋറ Ͱ͖Δ +BWB4DSJQU
ؔద༻
ධՁʮؔʯʹҾΛ༩͑ͯ݁ՌΛಘΔ͜ͱ SFUVSOYUP4USJOH GJOUTUSJOH SFUVSO ʠʡ ҾY
G H I 2Ͳͷ͔ؔΒʮධՁʯ͢Δ
G H I ਖ਼֨ධՁଆ͔Βɻී௨ͷݴޠ $+43VCZ+BWBʜ
G H I ඇਖ਼֨ධՁ֎ଆ͔ΒɻԆධՁ )BTLFMM*0ʜ
ߴ֊ؔ
MFUH *OU4USJOH TUSJOH HBʠIFMMPʠ B ʮؔʯΛड͚औΔؔ )BTLFMM
H GO \ʠIFMMPʠ GO ^ ʮؔʯΛड͚औΔؔ 3VCZ
DPOTUH GO \SFUVSOʠIFMMPʠ GO ^ ʮؔʯΛड͚औΔؔ +BWB4DSJQU
ʮؔHʯͷҾGOʹʮؔGʯΛ༩͑Δ SFUVSOYUP4USJOH SFUVSOʠIFMMPʠ GO GJOUTUSJOH H JOUTUSJOH TUSJOH lIFMMPz
SFUVSO ҾGO
ड͚औͬͨʮؔʯGOΛͬͯTUSJOHΛฦ͢ H JOUTUSJOH TUSJOH SFUVSOʠIFMMPʠ SFUVSOYUP4USJOH GOJOUTUSJOH lIFMMPz SFUVSO
ҾY SFUVSOYUP4USJOH GOJOUTUSJOH
Ϋϩʔδϟ
MFUB MFUIaYY B पғͷʮڥʯΛऔΓࠐΜͩʮؔʯ )BTLFMM
B I Y \Y B^ पғͷʮڥʯΛऔΓࠐΜͩʮؔʯ 3VCZ
DPOTUB DPOTUI Y \SFUVSOY B^ पғͷʮڥʯΛऔΓࠐΜͩʮؔʯ +BWB4DSJQU
ʮؔIʯʮBʯͱ͍͏ڥΛ͍֮͑ͯΔ SFUVSOY IJOUJOU B B ڥΛऔΓࠐΉ
ʮؔʯ͕ʮঢ়ଶʯΛ͍࣋ͬͯΔͱݴ͑Δ SFUVSOY IJOUJOU B SFUVSO
Ϋϩʔδϟͱ ߴ֊ؔ
MFUJ*OU *OU4USJOH JYaZTIPX Y Z ҾΛऔΓࠐΜͩʮΫϩʔδϟʯΛ࡞ͬͯฦ͢ʮؔʯ )BTLFMM Ϋϩʔδϟ
J Y \ Z \ Y Z UP@T^ ^
ҾΛऔΓࠐΜͩʮΫϩʔδϟʯΛ࡞ͬͯฦ͢ʮؔʯ 3VCZ Ϋϩʔδϟ
DPOTUJ Y \ SFUVSO Z \ SFUVSO Y Z UP4USJOH
^ ^ ҾΛऔΓࠐΜͩʮΫϩʔδϟʯΛ࡞ͬͯฦ͢ʮؔʯ +BWB4DSJQU Ϋϩʔδϟ
ड͚औͬͨҾΛऔΓࠐΜͩʮΫϩʔδϟʯΛฦ͢ JJOUJOUTUSJOH SFUVSO JOUTUSJOH SFUVSO Y ڥΛऔΓࠐΉ SFUVSO Z UP4USJOH
Y Y SFUVSO Z UP4USJOH ҾY JOUTUSJOH
ؔ߹
GɾH Y G H Y ̎ͭͷؔG HΛॱ൪ʹద༻͢Δ߹ؔGɾHΛੜ͢Δ͜ͱ
MFUGaYY MFUHaYTIPXY MFUHGaYHGY ؔHGҾYΛGʹద༻ͨ݁͠ՌΛHʹద༻ͯ͠ฦ͢ )BTLFMM
G Y \Y ^ H Y \YUP@T^ HG Y \H
G Y ^ ؔHGҾYΛGʹద༻ͨ݁͠ՌΛHʹద༻ͯ͠ฦ͢ 3VCZ
DPOTUG Y \SFUVSOY ^ DPOTUH Y \SFUVSOYUP4USJOH ^ DPOTUHG Y
\SFUVSOH G Y ^ ؔHGҾYΛGʹద༻ͨ݁͠ՌΛHʹద༻ͯ͠ฦ͢ +BWB4DSJQU
߹ؔHGؔGͱHΛͭʮΫϩʔδϟʯ SFUVSO HGJOUTUSJOH SFUVSOY GJOUJOU SFUVSOYUP4USJOH HJOUTUSJOH SFUVSOY
GJOUJOU SFUVSOYUP4USJOH HJOUTUSJOH
߹ؔHGؔGͱHΛͭʮΫϩʔδϟʯ SFUVSO HGJOUTUSJOH SFUVSOY GJOUJOU SFUVSOYUP4USJOH HJOUTUSJOH SFUVSO
ʠʡ
ؔ߹͢Δؔ
DPNQPTF G H GɾH ̎ͭͷؔG HΛҾʹ߹ؔHGΛฦ͢ʮؔʯ
CD BC BD MFUHGHG )BTLFMMʹΈࠐΈͰ ͕ؔ͋Δ
)BTLFMM
EFGDPNQPTF H G Y \H G Y ^
FOE 3VCZͰҾH G͔ΒMBNCEBΛੜͯ͠ฦ͢ 3VCZ
DMBTT1SPD EFGDPNQPTF G Y \TFMG G Y ^
FOE BMJBT@NFUIPE DPNQPTF FOE 1SPDΫϥεͷΠϯελϯεϝιουʹ͢Δͷ͕ࣗવ 3VCZ
G Y \Y ^ H Y \YUP@T^ HDPNQPTF G
HG 1SPDΫϥεͷΠϯελϯεϝιουʹ͢Δͷ͕ࣗવ 3VCZ
DPOTUDPNQPTF H G \ SFUVSO Y \SFUVSOH G Y ^
^ +BWB4DSJQUͰҾH G͔ΒGVODUJPOΛੜͯ͠ฦ͢ +BWB4DSJQU
'VODUJPOQSPUPUZQFDPNQPTF GVODUJPO G \ SFUVSO Y \SFUVSOUIJT G Y ^
^ 'VODUJPOʹDPNQPTFΛఆٛ͢Δํ͕ࣗવ +BWB4DSJQU
ؔ W T ΦϒδΣΫτ
Φ ϒδΣ Ϋ τ ؔ ม
ʹ ೖͰ͖ Δ ม ʹ ೖͰ͖ Δ
Φ ϒδΣ Ϋ τ ؔ ؔ
ͷҾ ʹ ͤ Δ ؔ ͷҾ ʹ ͤ Δ
Φ ϒδΣ Ϋ τ ؔ ঢ় ଶ
Λ࣋ ͭ ϝϯό ʔ ม ঢ় ଶ Λ࣋ ͭ Ϋϩʔ δ ϟ
Φ ϒδΣ Ϋ τ ؔ ؔ
Ͱੜ ͯ͠ Γ ʹ Ͱ͖Δ ؔ Ͱੜ ͯ͠ Γ ʹ Ͱ͖Δ
Φ ϒδΣ Ϋ τ ؔ Έ
߹Θ ͤΔ͜ ͱ ͕Ͱ͖ Δ EF M FH BU F D PN Q PTJ UJP O Έ ߹Θ ͤΔ͜ ͱ ͕Ͱ͖ Δ ؔ ߹
ؔ͜Θ͘ͳ͍ ͜Θ͘ͳ͍
͔͜͜Β ͕࣌ؒ༨ͬͨΒ
ؔ߹ͷ ॱং
I H G Y YΛGʹͨ݁͠ՌΛɺHʹͯ͠ಘͨ݁ՌΛɺIʹ͢
I H G Y ӈ͔Βࠨॲཧ͕ྲྀΕ͍ͯ͘
IɾHɾG Y ߹ؔIɾHɾGӈ͔Βద༻͞Ε͍ͯ͘
GH Y H G Y ߹ͷॱংΛٯʹͯ͠߹͢Δ Λߟ͑Δ GɾH Y
G H Y
Ͱ߹͢Δͱɺॲཧ͕ࠨ͔ΒӈʹྲྀΕΔ I H G Y GHI Y
JNQPSU$POUSPM$BUFHPSZ $BUFHPSZDBUDBUBCDBUCDDBUBD )BTLFMMͰ$POUSPM$BUFHPSZʹ ͕͋Δ )BTLFMM
DMBTT1SPD EFG H Y \H TFMG Y ^
FOE FOE 3VCZͰ1SPDͷԋࢉࢠ Λॻ͖͑Δ 3VCZ
'VODUJPOQSPUPUZQFBOE5IFO GVODUJPO G \ SFUVSO Y \SFUVSOG UIJT Y ^
^ 'VODUJPOʹBOE5IFOͳͲ࡞ΕͲ͏ʹ͔ +BWB4DSJQU
ؔ߹ͷॱংΛม͑Δͱ ࠨ͔ΒӈॲཧͷྲྀΕΛ දݱ͢Δ͜ͱ͕Ͱ͖Δ ຊਓͳͷͰࠨ͔ΒಡΈ͍ͨ
ؔ͜Θ͘ͳ͍ ͜Θ͘ͳ͍
ؔద༻͢Δ ؔ
ؔద༻ࠨ͔Βӈʹྲྀ͍ͨ͠ GHI Y
] ؔద༻͢Δʮؔʯ Y]GG Y
Y͕ࠨ͔ΒӈʹG H IΛ௨ͬͯྲྀΕ͍ͯ͘ Y] GHI
] B BC C B]GGB தஔԋࢉࢠ ] ӈลͷؔʹࠨลͷΛ͢ )BTLFMM
DMBTT0CKFDU EFGʛʼ G G TFMG FOE FOE 3VCZͰશ֯
ʛʼ ͰͲ͏ʹ͔ʜ 3VCZ
0CKFDUQSPUPUZQFSFWBQQMZ GVODUJPO G \SFUVSOG UIJT ^ 0CKFDUQSPUPUZQFԚછ +BWB4DSJQU
ؔద༻͢ΔؔͰ Ҿ͕ࠨ͔ΒӈྲྀΕΔ༷Λ දݱ͢Δ͜ͱ͕Ͱ͖Δ ຊਓͳͷͰࠨ͔ΒಡΈ͍ͨ
6OJYͷQJQF &MJYJSͷ]ͳͲ Ͱ͋Μ·Γ͜͏͍͏ॻ͖ํ͠ͳ͍͚Ͳʜ
ؔ͜Θ͘ͳ͍ ͜Θ͘ͳ͍
ؔ߹ͷ จ຺
EFGDPNQPTF G Y \TFMG G Y ^ FOE
ؔ߹ͷ࣮Ͱʜ 3VCZ
EFG G Y \TFMG G Y
^ FOE G Y ͷ݁ՌΛഒʹͯ͠ΈΔ 3VCZ
G Y \Y ^ H Y \Y ^ I Y
\YUP@T^ IHG ʠʡ ߹͞ΕͨؔͷؒͰҾ͕ഒʹ 3VCZ
߹͞ΕͨؔͷؒͰҾ͕ഒʹ Y GJOUJOU Y HJOUJOU YUP@T IJOUTUSJOH
ʠʡ
EFG G Y \ SFTG Y SFTOJM
OJMTFMG SFT ^ FOE G Y ͕OJMͳΒɺ߹͞ΕͨؔΛݺͣʹऴྃ͢Δ 3VCZ
G Y \<OJM Y >TBNQMF^ H Y \<OJM Y >TBNQMF^
I Y \YUP@T^ IHG OJMPSʠʡ G HͷͲͪΒ͔͕OJMΛฦ͢ͱશମͷ݁Ռ͕OJMʹͳΔ 3VCZ
߹͞ΕͨؔͷؒͰOJMνΣοΫ <OJM Y >TBNQMF GJOUJOU <OJM Y >TBNQMF HJOUJOU YUP@T
IJOUTUSJOH OJM OJM ʠʡ ऴྃ ऴྃ
ʮ݁Ռ͕ഒʹͳΔʯจ຺ ʮOJMͩͱதࢭ͢Δʯจ຺ ؔ߹ʹ༷ʑͳʮจ຺ʯΛ༩͑Δ͜ͱ͕Ͱ͖Δ
ʮঢ়ଶ͕มԽ͢Δʯจ຺ ʮೖग़ྗ͕ൃੜ͢Δʯจ຺ ʮඇಉظͰܭࢉ͢Δʯจ຺ ଞʹ͍Ζ͍Ζͳʮจ຺ʯ͕͋Δ
ؔ߹ΛநԽ͢Δͱ ੜ͞ΕΔؔʹ༷ʑͳ ੑ࣭Λ༩͑Δ͜ͱ͕Ͱ͖Δ ͔ͯ͠͠Ϟφʜʜ ҧ͍·͢
ؔ͜Θ͘ͳ͍ ͜Θ͘ͳ͍
ྫ ؔ߹Ͱ 'J[[#V[[
DMBTT1SPD EFGPS G Y \ SFTTFMG Y
SFTOJM G Y SFT ^ FOE FOE ࣗʹYΛద༻ͨ݁͠Ռ͕OJMͳΒɺ߹͞ΕͨؔΛݺͿ 3VCZ
GJ[[ Y \Y GJ[[OJM^ CV[[ Y \Y CV[[OJM^ GJ[[CV[[ Y
\ YY GJ[[CV[[OJM^ JE Y \YUP@T^ GJ[[ CV[[ GJ[[CV[[ͱࣈΛग़ྗ͢ΔؔΛ༻ҙ 3VCZ
NBQ GJ[[CV[[PSGJ[[PSCV[[PSJE ֤ؔΛPSͰ߹ͯ͠NBQ͢ΕGJ[[CV[[Ͱ͖Δ 3VCZ
ͦͷଞͷ τϐοΫ
wŋࢀরಁա wŋΧϦʔԽ wŋ෦ద༻ wŋ࠶ؼ wŋΈࠐΈؔ wŋσʔλߏ ϞϊΠυͱ͔ ͜ͷ͋ͨΓͷػձ͕͋ͬͨΒ
ؔ͜Θ͘ͳ͍ ͜Θ͘ͳ͍