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
yuroyoro
July 13, 2016
Programming
20
18k
関数の話
Supershipの社内勉強会で使ったやつ
yuroyoro
July 13, 2016
Tweet
Share
More Decks by yuroyoro
See All by yuroyoro
Goに無名関数の糖衣構文いれたらどうなるの? / Considering the introduction of the anonymous function syntax sugar into Go
yuroyoro
4
3.5k
Scala で 作る奇妙なプログラミング言語??
yuroyoro
4
16k
Other Decks in Programming
See All in Programming
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
380
2025年版 サーバーレス Web アプリケーションの作り方
hayatow
23
25k
Breaking Up with Big ViewModels — Without Breaking Your Architecture (droidcon Berlin 2025)
steliosf
PRO
1
270
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
290
Reactをクライアントで使わない
yusukebe
7
6.2k
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
140
CSC305 Lecture 02
javiergs
PRO
1
260
Let's Write a Train Tracking Algorithm
twocentstudios
0
220
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
210
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
2.3k
LLMとPlaywright/reg-suitを活用した jQueryリファクタリングの実際
kinocoboy2
4
640
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
150
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
We Have a Design System, Now What?
morganepeng
53
7.8k
Being A Developer After 40
akosma
90
590k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Making Projects Easy
brettharned
118
6.4k
Agile that works and the tools we love
rasmusluckow
330
21k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Done Done
chrislema
185
16k
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ŋσʔλߏ ϞϊΠυͱ͔ ͜ͷ͋ͨΓͷػձ͕͋ͬͨΒ
ؔ͜Θ͘ͳ͍ ͜Θ͘ͳ͍