Soumettre la recherche
Mettre en ligne
Currying in perl
•
0 j'aime
•
3,144 vues
Masahiro Honma
Suivre
http://www.slideshare.net/hiratara/hokkaidopm-17020206 の本物の方。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 34
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
俺のフックがこんなに簡単なわけがない。
俺のフックがこんなに簡単なわけがない。
Hishikawa Takuro
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
Takaaki Hirano
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
柴田 篤志
実用裏方 Perl 入門
実用裏方 Perl 入門
keroyonn
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
azuma satoshi
Perlで伝統芸能
Perlで伝統芸能
hitode909
Recommandé
俺のフックがこんなに簡単なわけがない。
俺のフックがこんなに簡単なわけがない。
Hishikawa Takuro
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
Takaaki Hirano
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
柴田 篤志
実用裏方 Perl 入門
実用裏方 Perl 入門
keroyonn
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
azuma satoshi
Perlで伝統芸能
Perlで伝統芸能
hitode909
Nambapm_napthats
Nambapm_napthats
napthats
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
WordPress のキャッシュ機構
WordPress のキャッシュ機構
katanyan
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
Joe_noh
"What Does Your Code Smell Like?"で学ぶPerl6
"What Does Your Code Smell Like?"で学ぶPerl6
risou
Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半
Joe_noh
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料
co-hey japan
WordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えよう
Naoki Matsuda
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
Satoshi Suzuki
Elixirだ 第2回
Elixirだ 第2回
Joe_noh
Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -
Joe_noh
すごいHaskell読書会#10
すごいHaskell読書会#10
Shin Ise
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
Satoshi Suzuki
2014経営分析論Ⅱ⑨
2014経営分析論Ⅱ⑨
Tsutomu TOBITA
Asset Pipeline for Perl
Asset Pipeline for Perl
Yoshihiro Sasaki
理解したつもりになるGit入門
理解したつもりになるGit入門
Yoshihiro Sasaki
Use Carton
Use Carton
Yoshihiro Sasaki
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
Contenu connexe
Tendances
Nambapm_napthats
Nambapm_napthats
napthats
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
WordPress のキャッシュ機構
WordPress のキャッシュ機構
katanyan
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
Joe_noh
"What Does Your Code Smell Like?"で学ぶPerl6
"What Does Your Code Smell Like?"で学ぶPerl6
risou
Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半
Joe_noh
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料
co-hey japan
WordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えよう
Naoki Matsuda
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
Satoshi Suzuki
Elixirだ 第2回
Elixirだ 第2回
Joe_noh
Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -
Joe_noh
すごいHaskell読書会#10
すごいHaskell読書会#10
Shin Ise
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
Satoshi Suzuki
2014経営分析論Ⅱ⑨
2014経営分析論Ⅱ⑨
Tsutomu TOBITA
Tendances
(18)
Nambapm_napthats
Nambapm_napthats
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
知って得する標準関数の使い方
知って得する標準関数の使い方
WordPress のキャッシュ機構
WordPress のキャッシュ機構
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
"What Does Your Code Smell Like?"で学ぶPerl6
"What Does Your Code Smell Like?"で学ぶPerl6
Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料
WordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えよう
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
Elixirだ 第2回
Elixirだ 第2回
Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -
すごいHaskell読書会#10
すごいHaskell読書会#10
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
2014経営分析論Ⅱ⑨
2014経営分析論Ⅱ⑨
En vedette
Asset Pipeline for Perl
Asset Pipeline for Perl
Yoshihiro Sasaki
理解したつもりになるGit入門
理解したつもりになるGit入門
Yoshihiro Sasaki
Use Carton
Use Carton
Yoshihiro Sasaki
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
Google trends to_irc
Google trends to_irc
rarere
Takao.mt 2013
Takao.mt 2013
moznion
テーマ「最適化」
テーマ「最適化」
technocat
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
goccy
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
Yoshihiro Sasaki
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
moznion
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
Yoshihiro Sasaki
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
technocat
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
鉄次 尾形
Using Dancer
Using Dancer
Yoshihiro Sasaki
YAPCレポートの舞台裏
YAPCレポートの舞台裏
Masahiro Honma
Plack::Request with Encoding
Plack::Request with Encoding
moznion
CPAN/便利モジュール
CPAN/便利モジュール
Yoshihiro Sasaki
変数、リファレンス
変数、リファレンス
charsbar
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
cpanfile
cpanfile
Yoshihiro Sasaki
En vedette
(20)
Asset Pipeline for Perl
Asset Pipeline for Perl
理解したつもりになるGit入門
理解したつもりになるGit入門
Use Carton
Use Carton
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Google trends to_irc
Google trends to_irc
Takao.mt 2013
Takao.mt 2013
テーマ「最適化」
テーマ「最適化」
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Using Dancer
Using Dancer
YAPCレポートの舞台裏
YAPCレポートの舞台裏
Plack::Request with Encoding
Plack::Request with Encoding
CPAN/便利モジュール
CPAN/便利モジュール
変数、リファレンス
変数、リファレンス
Perl 非同期プログラミング
Perl 非同期プログラミング
cpanfile
cpanfile
Similaire à Currying in perl
Hachiojipm #5 LT資料 [テーマ:最近いいなと思ったもの]
Hachiojipm #5 LT資料 [テーマ:最近いいなと思ったもの]
norry_gogo
詳説ぺちぺち
詳説ぺちぺち
do_aki
PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
Yuki Shibazaki
Ekmett勉強会発表資料
Ekmett勉強会発表資料
時響 逢坂
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
Data munging
Data munging
Hiroyuki Taira
Similaire à Currying in perl
(7)
Hachiojipm #5 LT資料 [テーマ:最近いいなと思ったもの]
Hachiojipm #5 LT資料 [テーマ:最近いいなと思ったもの]
詳説ぺちぺち
詳説ぺちぺち
PHP7を魔改造した話
PHP7を魔改造した話
Cinnamon - simple deploy tool
Cinnamon - simple deploy tool
Ekmett勉強会発表資料
Ekmett勉強会発表資料
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Data munging
Data munging
Plus de Masahiro Honma
レンズ (ぶつかり稽古の没プレゼン)
レンズ (ぶつかり稽古の没プレゼン)
Masahiro Honma
すべてが@__kanになる
すべてが@__kanになる
Masahiro Honma
Types and perl language
Types and perl language
Masahiro Honma
カレーとHokkaidopm
カレーとHokkaidopm
Masahiro Honma
モナモナ言うモナド入門.tar.gz
モナモナ言うモナド入門.tar.gz
Masahiro Honma
モナモナ言うモナド入門
モナモナ言うモナド入門
Masahiro Honma
Perl saved a lady.
Perl saved a lady.
Masahiro Honma
Levenshtein Automata
Levenshtein Automata
Masahiro Honma
20120526 hachioji.pm
20120526 hachioji.pm
Masahiro Honma
循環参照のはなし
循環参照のはなし
Masahiro Honma
Arrows in perl
Arrows in perl
Masahiro Honma
Hachioji.pm in Machida の LT
Hachioji.pm in Machida の LT
Masahiro Honma
Monads in perl
Monads in perl
Masahiro Honma
ウヰスキーとPSGI
ウヰスキーとPSGI
Masahiro Honma
モデルから知るGit
モデルから知るGit
Masahiro Honma
Git入門
Git入門
Masahiro Honma
AnyEvent and Plack
AnyEvent and Plack
Masahiro Honma
Math::Category
Math::Category
Masahiro Honma
Stateモナドの解説 後編
Stateモナドの解説 後編
Masahiro Honma
Stateモナドの解説 中編
Stateモナドの解説 中編
Masahiro Honma
Plus de Masahiro Honma
(20)
レンズ (ぶつかり稽古の没プレゼン)
レンズ (ぶつかり稽古の没プレゼン)
すべてが@__kanになる
すべてが@__kanになる
Types and perl language
Types and perl language
カレーとHokkaidopm
カレーとHokkaidopm
モナモナ言うモナド入門.tar.gz
モナモナ言うモナド入門.tar.gz
モナモナ言うモナド入門
モナモナ言うモナド入門
Perl saved a lady.
Perl saved a lady.
Levenshtein Automata
Levenshtein Automata
20120526 hachioji.pm
20120526 hachioji.pm
循環参照のはなし
循環参照のはなし
Arrows in perl
Arrows in perl
Hachioji.pm in Machida の LT
Hachioji.pm in Machida の LT
Monads in perl
Monads in perl
ウヰスキーとPSGI
ウヰスキーとPSGI
モデルから知るGit
モデルから知るGit
Git入門
Git入門
AnyEvent and Plack
AnyEvent and Plack
Math::Category
Math::Category
Stateモナドの解説 後編
Stateモナドの解説 後編
Stateモナドの解説 中編
Stateモナドの解説 中編
Dernier
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Dernier
(12)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Currying in perl
1.
CurryとHokkaido.pm
2013.3.9 hiratara FreakOut
2.
初代ベスト エルティニスト賞
3.
“Hokkaido.pm Casual はじめました”
by techno_neko スープCurryが観客の心と胃袋をつかみ、初代ベス トエルティニスト賞となりました!おめでとうご ざいました! http://hachiojipm.org/?p=403
4.
“Hokkaido.pm Casual はじめました”
by techno_neko スープCurryが観客の心と胃袋をつかみ、初代ベス トエルティニスト賞となりました!おめでとうご ざいました! http://hachiojipm.org/?p=403
5.
Curryが
ウケるっぽい
6.
currying
7.
カリー化とは • A ×
B→Cの関数を、A→(B→C)にする • hoge($x, $y) みたいな関数を curried_hoge($x)($y) みたいにする
8.
カリー化と 部分適用は違うよ
9.
部分適用とは • A ×
B→Cの関数を、B→Cにする • hoge($x, $y) みたいな関数に3を適用して hoge_3($y) みたいにする
10.
誤用すると色々危ない
11.
curry関数の実装 sub curry {
my $f = shift; sub { my $x = shift; sub { $f->($x, @_) }; }; }
12.
再帰的にカリー化 • hoge($x, $y,
$z) みたいな関数は curried_hoge($x)($y, $z) じゃなく curried_hoge($x)($y)($z) みたいにしたい • A × B × C→D A→(B × C→D) A→(B→(C→D))
13.
curry_n関数の実装 sub curry_n {
my ($n, $f) = @_; $n <= 1 ? $f : sub { my $x = shift; my $fx = curry($f)->($x); curry_n($n - 1, $fx); }; }
14.
curry_n関数の実装 sub curry_n {
引数の個数が必要 my ($n, $f) = @_; $n <= 1 ? $f : sub { my $x = shift; my $fx = curry($f)->($x); curry_n($n - 1, $fx); }; }
15.
使い方 sub add {
$_[0] + $_[1] + $_[2] } my $x = (curry_n 3, &add)->(3)(4)(5);
16.
使い方 sub add {
$_[0] + $_[1] + $_[2] } まとめたい my $x = (curry_n 3, &add)->(3)(4)(5);
17.
カレーをカレーで食べる
18.
新しい関数を作る *curried_curry_n = curry_n(2,
&curry_n); *curry3 = curried_curry_n(3); my $x = curry3(&add)->(3)(4)(5);
19.
新しい関数を作る
curry_nは2引数関数 *curried_curry_n = curry_n(2, &curry_n); *curry3 = curried_curry_n(3); my $x = curry3(&add)->(3)(4)(5);
20.
新しい関数を作る
curry_nは2引数関数 *curried_curry_n = curry_n(2, &curry_n); *curry3 = curried_curry_n(3); 引数の数を部分適用して新しい関数にする my $x = curry3(&add)->(3)(4)(5);
21.
カリー化すると
部分適用しやすい *curry3 = curried_curry_n(3); *curry4 = curried_curry_n(4); *curry5 = curried_curry_n(5); *{“curry$_”} = curried_curry_n($_) for 3.. 10000000;
22.
ほんとに引数の数 ってわからないの?
23.
($$$)
24.
I ♡ function
prototyping
25.
プロトタイプを使う sub parse_proto ($)
{ my $f = shift; my $proto = prototype $f; $proto =~ /^([&_+*$]|[[$@%&*]+]|[$@ %&*])(.+)/ ? ($1, $2) : (undef, $proto); }
26.
プロトタイプを使う sub curry_proto_n ($)
{ my $f = shift; my ($p, $ps) = parse_proto $f; ! $p ? $f : eval qq/sub ($p) { my $x = shift; my $fx = sub ($ps) { $f->($x, @_) }; curry_proto_n $fx; }/; }
27.
プロトタイプを使う sub curry_proto_n ($)
{ my $f = shift; my ($p, $ps) = parse_proto $f; ! $p ? $f : eval qq/sub ($p) { my $x = shift; my $fx = sub ($ps) { $f->($x, @_) }; curry_proto_n $fx; }/; }
28.
使い方 sub add ($$$)
{ $_[0] + $_[1] + $_[2] } my $x = (curry_proto_n &add)->(3)(4)(5); BEGIN { *add10 = (curry_proto &add)->(10) } my $x = add10 3, 4;
29.
使い方 sub add ($$$)
{ $_[0] + $_[1] + $_[2] } my $x = (curry_proto_n &add)->(3)(4)(5); BEGIN { *add10 = (curry_proto &add)->(10) } my $x = add10 3, 4; かっこなくてもよい
30.
One more
function prototyping
31.
Pod::Functions % perl -MPod::Functions
-e 'eval { print $_, "t", +(prototype "CORE::$_"), "n" } for keys %Flavor' ... getgrgid $ connect *$ dbmopen %$$ link $$ rand ;$ dbmclose % msgsnd $$$ umask ;$ sleep ;$ seek *$$
32.
currying builtins use 5.16.2; my
$x = (curry_proto_n &CORE::substr)->("abcde")(1)(2); BEGIN { *substr_abcde = (curry_proto &CORE::substr)->("abcde"); } my $y = substr_abcde 1, 2;
33.
currying builtins use 5.16.2; my
$x = (curry_proto_n &CORE::substr)->("abcde")(1)(2); BEGIN { *substr_abcde = (curry_proto &CORE::substr)->("abcde"); } my $y = substr_abcde 1, 2; かっこなくてもよい
34.
まとめ • カリー化すると部分適用しやすい • &CORE::xxx
によりさらに便利に • プロトタイプ使うと隣の同僚に DISられる
Télécharger maintenant