SlideShare a Scribd company logo
5分でわかる? 
関数型PHPの潮流 
@yuya_takeyama
今
関数型PHP 
が熱い
functional
でも、 
お高いん 
でしょう? 
(ハードル的な意味で)
はい
ぶっちゃけ 
僕も 
よくわかってない
でも
functional
「機能的」
OO厨でも 
学ぶべき 
ところは多い
押さえておくべき 
キーワード
参照透過性 
(または副作用につ 
いて)
例えば、 
forをやめる
例えば、 
setterをやめる
例えば、 
変数の再代入を 
やめる
immutability
次
高階関数
関数を 
生成する関数
あるいは
関数を 
引数に受ける 
関数
(デザパタ厨には 
お馴染み 
Strategy Pattern)
遅延評価
$range = function ($start, $end, $step = 1) { 
for ($i = 1; $i <= $end; $i += $step) { 
yield $i; 
} 
}; 
! 
foreach ($range(1, 100) as $n) { 
echo $n, PHP_EOL; 
} 
ジェネレータでrange
今
関数型PHP 
が熱い
PHP5.6の 
新機能
use function
自分の 
ベンダ空間に 
関数定義しまくり
use function 
my_awesome_func;
次
variadic 
parameters
可変長引数
function(...$args) {}
次
farewell 
to 
func_get_args()
parameters 
unpacking
引数の 
動的展開
func(...$args);
farewell 
to 
call_user_func_array()
おすすめ 
ライブラリ
nikic¥iter
ジェネレー 
タ実装者 
による
関数型コレク 
ション操作ラ 
イブラリ群
map 
reduce 
filter
全部 
遅延 
評価
次
igorw¥retry
超簡単に 
リトライが 
実装できる
$user = retry(5, function () use ($id) { 
return User::find($id); 
});
in 
HHVM
$user = retry(5, () ==> User::find($id));
cool
あと
igorw¥retry 
issues#3 
にopcodeレベルでの 
詳説
知りたいが、 
あなたを(ry
あとあと
この辺の話 
Qiitaにもいろいろ 
書いてるので 
http://qiita.com/yuya_takeyama 
よろしくお願いします
それでは
このあたりで
Thank 
you 
for 
Listening

More Related Content

PDF
Smalltalkで四則演算パーサ
Masashi Umezawa
 
PDF
Template Meta Programming入門から応用まで
yoshihikoozaki5
 
PDF
現実(えくせる)と戦う話
bleis tift
 
PDF
201906 のの会@関数Talk 13th
Satoru Abe
 
PDF
C++ Template Metaprogramming
Akira Takahashi
 
PDF
Ruby and comparison_and...php
do_aki
 
PDF
Unity2015_No10_~UGUI&Audio~
CHY72
 
PDF
20190530-DesignOneGo01
Kento Sato
 
Smalltalkで四則演算パーサ
Masashi Umezawa
 
Template Meta Programming入門から応用まで
yoshihikoozaki5
 
現実(えくせる)と戦う話
bleis tift
 
201906 のの会@関数Talk 13th
Satoru Abe
 
C++ Template Metaprogramming
Akira Takahashi
 
Ruby and comparison_and...php
do_aki
 
Unity2015_No10_~UGUI&Audio~
CHY72
 
20190530-DesignOneGo01
Kento Sato
 

Viewers also liked (15)

PDF
PHPカンファレンス2015
Daisuke Kasuya
 
PDF
Good Parts of PHP and the UNIX Philosophy
Yuya Takeyama
 
PDF
5分でわかるPHPのクロージャ(web公開版)
hajikami
 
PDF
セキュアな育毛
Ishibashi Ryosuke
 
PDF
MySQL 入門的なはなし
Yuya Takeyama
 
PDF
PHPUnit でよりよくテストを書くために
Yuya Takeyama
 
PDF
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
Yasuyuki Kamata
 
PPTX
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
 
PDF
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
 
PDF
たのしい高階関数
Shinichi Kozake
 
PPTX
大規模CSVをMySQLに入れる
Shuhei Iitsuka
 
PDF
ハイレベルメンバーによる共創実験 / UX & Service Sketch #26
Keita Takizawa
 
PDF
スマートマタニティマークができるまで / UX & Service Sketch #26
Keita Takizawa
 
PDF
テストを書こう、Unity編
Hiroto Imoto
 
PDF
Chronoscapeをカタチにした必然と偶然|UX & Service Sketch #26「0からのプロダクトの立ち上げ方」
Koki Kaku
 
PHPカンファレンス2015
Daisuke Kasuya
 
Good Parts of PHP and the UNIX Philosophy
Yuya Takeyama
 
5分でわかるPHPのクロージャ(web公開版)
hajikami
 
セキュアな育毛
Ishibashi Ryosuke
 
MySQL 入門的なはなし
Yuya Takeyama
 
PHPUnit でよりよくテストを書くために
Yuya Takeyama
 
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
Yasuyuki Kamata
 
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
 
たのしい高階関数
Shinichi Kozake
 
大規模CSVをMySQLに入れる
Shuhei Iitsuka
 
ハイレベルメンバーによる共創実験 / UX & Service Sketch #26
Keita Takizawa
 
スマートマタニティマークができるまで / UX & Service Sketch #26
Keita Takizawa
 
テストを書こう、Unity編
Hiroto Imoto
 
Chronoscapeをカタチにした必然と偶然|UX & Service Sketch #26「0からのプロダクトの立ち上げ方」
Koki Kaku
 
Ad

Similar to 5分でわかる? 関数型 PHP の潮流 (19)

PDF
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
 
PDF
PHPの今とこれから2025 (PHP Conference Japan 2025)
Rui Hirokawa
 
PDF
PHPの今とこれから2019
Rui Hirokawa
 
PDF
PHPの今とこれから2014
Rui Hirokawa
 
PDF
PHPの今とこれから2015
Rui Hirokawa
 
PPTX
第4回 PHPのおさらい
Sawada Makoto
 
PDF
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
 
PDF
知って得する標準関数の使い方
Soudai Sone
 
PDF
Php5.4
ke-m kamekoopa
 
PPTX
Php5 4勉強会
Yuji Otani
 
PDF
PHP 入門
Shuhei Iitsuka
 
PDF
Osc2014
Soudai Sone
 
PDF
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
 
PDF
第104回 php勉強会@東京 Laravel
JunKeun Lee
 
PPTX
究極のPHP本完成
Katsuhiro Ogawa
 
PDF
FukuokaPHP 3
ichikaway
 
PDF
Hack/HHVM 入門
y-uti
 
PPTX
PHP基礎勉強会
Yuji Otani
 
PPTX
PHPCON_TOKYO_2022_Bigginer.pptx
Hideo Kashioka
 
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
 
PHPの今とこれから2025 (PHP Conference Japan 2025)
Rui Hirokawa
 
PHPの今とこれから2019
Rui Hirokawa
 
PHPの今とこれから2014
Rui Hirokawa
 
PHPの今とこれから2015
Rui Hirokawa
 
第4回 PHPのおさらい
Sawada Makoto
 
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
 
知って得する標準関数の使い方
Soudai Sone
 
Php5 4勉強会
Yuji Otani
 
PHP 入門
Shuhei Iitsuka
 
Osc2014
Soudai Sone
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
 
第104回 php勉強会@東京 Laravel
JunKeun Lee
 
究極のPHP本完成
Katsuhiro Ogawa
 
FukuokaPHP 3
ichikaway
 
Hack/HHVM 入門
y-uti
 
PHP基礎勉強会
Yuji Otani
 
PHPCON_TOKYO_2022_Bigginer.pptx
Hideo Kashioka
 
Ad

More from Yuya Takeyama (13)

PDF
Reactor Pattern and React
Yuya Takeyama
 
PDF
PHP と MySQL で 1 カチャカチャカチャ...ッターン! MapReduce (@ニコニコ超会議)
Yuya Takeyama
 
PDF
PHP と MySQL でカジュアルに MapReduce する (Short Version)
Yuya Takeyama
 
PDF
PHP と MySQL でカジュアルに MapReduce する
Yuya Takeyama
 
PDF
PHPUnit でテスト駆動開発を始めよう
Yuya Takeyama
 
PDF
HashTable と HashDos
Yuya Takeyama
 
PDF
Proposal for xSpep BDD Framework for PHP
Yuya Takeyama
 
PDF
Building Development Environment with php-build and phpenv
Yuya Takeyama
 
PDF
Making DSL with []
Yuya Takeyama
 
PDF
LIMIT 付きで UPDATE を行うと何故怒られるか
Yuya Takeyama
 
PDF
GOOS #1
Yuya Takeyama
 
PDF
Ruby 同好会宣言
Yuya Takeyama
 
ODP
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
Yuya Takeyama
 
Reactor Pattern and React
Yuya Takeyama
 
PHP と MySQL で 1 カチャカチャカチャ...ッターン! MapReduce (@ニコニコ超会議)
Yuya Takeyama
 
PHP と MySQL でカジュアルに MapReduce する (Short Version)
Yuya Takeyama
 
PHP と MySQL でカジュアルに MapReduce する
Yuya Takeyama
 
PHPUnit でテスト駆動開発を始めよう
Yuya Takeyama
 
HashTable と HashDos
Yuya Takeyama
 
Proposal for xSpep BDD Framework for PHP
Yuya Takeyama
 
Building Development Environment with php-build and phpenv
Yuya Takeyama
 
Making DSL with []
Yuya Takeyama
 
LIMIT 付きで UPDATE を行うと何故怒られるか
Yuya Takeyama
 
GOOS #1
Yuya Takeyama
 
Ruby 同好会宣言
Yuya Takeyama
 
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
Yuya Takeyama
 

5分でわかる? 関数型 PHP の潮流