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
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
6
3.3k
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
340
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
110
SODA - FACT BOOK(JP)
sodainc
1
8.6k
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
270
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
33k
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
280
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
130
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
2
650
Go言語はstack overflowの夢を見るか?
logica0419
0
510
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
770
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
3
870
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
The Invisible Side of Design
smashingmag
302
51k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Rails Girls Zürich Keynote
gr2m
95
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
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ŋσʔλߏ ϞϊΠυͱ͔ ͜ͷ͋ͨΓͷػձ͕͋ͬͨΒ
ؔ͜Θ͘ͳ͍ ͜Θ͘ͳ͍