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
curry.php
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kazunori Otani
March 29, 2014
Technology
720
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
curry.php
A functional programming using php.
Kazunori Otani
March 29, 2014
More Decks by Kazunori Otani
See All by Kazunori Otani
実践OpenTelemetry - Jagu'e'r オブザービリティ分科会 Meetup#2
katzchang
0
910
Kubernetes環境のオブザーバビリティの次の一歩をOpenTelemetryで実現すると何がどうなるの? - CloudNative Days Winter 2024
katzchang
0
310
SLI, SLOとカオスエンジニアリング、そしてオブザーバビリティ SRE Lounge #12
katzchang
4
3k
オビザーバビリティ成熟モデル
katzchang
1
4.6k
広告配信におけるパフォーマンス対策、やるかやらないか
katzchang
3
8.5k
高スループット・低レイテンシーなWEBサービスにおけるパフォーマンス対策の現実
katzchang
5
1.3k
モニタリングだいじというはなし
katzchang
1
270
プロビジョニングツールはMakeで決まりだろ
katzchang
12
10k
頑張らないScala
katzchang
2
2.9k
Other Decks in Technology
See All in Technology
本当の”仕事”を手放せる未来が見えた
mu7889yoon
0
190
現場のトークンマネジメント
dak2
1
200
AIは、人間らしい仕事の夢を見るか?─ AI時代のtoB/toEプロダクトを再設計する
techtekt
PRO
0
160
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
140
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
210
自作お家AIエージェントスタックチャンFWで困っている所紹介
74th
0
110
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
1
890
はてなのサービス基盤を支える Kubernetes《足腰》
masayoshimaezawa
0
160
AI時代における最適なQA組織の作り方
ymty
3
140
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
550
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
120
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
ラッコキーワード サービス紹介資料
rakko
1
3.8M
Between Models and Reality
mayunak
4
350
From π to Pie charts
rasagy
0
220
Designing for humans not robots
tammielis
254
26k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
GraphQLとの向き合い方2022年版
quramy
50
15k
Leo the Paperboy
mayatellez
7
1.9k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Everyday Curiosity
cassininazir
0
240
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Transcript
DVSSZQIQ LZPO@LBP@XFEEJOH !LBU[DIBOH
21)1͖Ͱ͔͢ʁ
!LBU[DIBOH
21)1͖Ͱ͔͢ʁ
ʊਓਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹಥવ4USJOH͕*OUʹมΘΔɹʻ ʉ:?:?:?:?:?:?:?:?:?:ʉ
ʮྫ͑ɺ1)1Λආ͚Δʯ
IUUQKBXJLJQFEJBPSHXJLJ&&"&"&"#3BTNVT@-FSEPSG@DSPQQFEKQH
1)1JTBCPVUBTFYDJUJOHBTZPVSUPPUICSVTI :PVVTFJUFWFSZEBZ JUEPFTUIFKPC JUJTBTJNQMFUPPM TPXIBU IUUQFOXJLJRVPUFPSHXJLJ3BTNVT@-FSEPSG
「PHPは、歯ブラシみたいなものですね。 毎日使うものですけど、だから何でしょう?」 IUUQBOPOEIBUFMBCPKQ
None
+BWBͱൺֱ
ແ໊͕ؔ͋Δ ˞+BWBҎલͱͷൺֱ
<?PHP $f = function($a, $b) { return $a + $b;
}; echo $f(2,3); // => 5
<?PHP $f = (function($a, $b) { return $a * $b;
})(2,3); // FAIL!!!
<?PHP $fib = function($x) { return $x < 2 ?
$x : $fib($x-1) + $fib($x-2); })); echo $fib(6); // FAIL!!
ΧϦʔԽ
IUUQTHJTUHJUIVCDPNLBU[DIBOH ˞༵ۚޕޙͰ͢
<?PHP $f = F::curry( function($_) { return $_[0] + $_[1];
}); echo $f->_(2)->_(3)->_();
IUUQTHJTUHJUIVCDPNBKJZPTIJWH CBECEF ˞༵ۚޕޙͰ͢
<?PHP $c = curry( function($a, $b){ return $a + $b;
}); echo $c->_(2)->_(3);
<?PHP function YComb($f) { $yc = curry( function($y, $x) use
($f) { return $f($y($y), $x); }); return $yc($yc); }
<?PHP echo (YComb(curry( function($f, $x){ return $x < 2 ?
$x : $f($x-1) + $f($x-2); })))->_(6);
ʮ͜Εɺࣃϒϥγͱ͍ͯ͠ʹͳΔϨϕϧʯ
-PWFZPVS1)1
None