関数定義
ちょっとメモ・・というか、こんなのも知らなかったのが恥ずかしい・・・
perlの関数定義で最初に勉強したときは
sub callee { my ($msg) = @_; print $msg; }
こんなやつ。でも、これって別の関数に渡すときに
sub caller { my ($data, $cbfunc) = @_; &$cbfunc($data); }
ってして
&caller("hello", \&callee);
な感じで使う。
でもperlって
my $callee= sub { my ($msg) = @_; print $msg; }
無名関数作成して、変数にバインドして
sub caller { my ($data, $cbfunc) = @_; $cbfunc->($data); }
みたいな呼び出し方ができて、
&caller("hello", $callee);
ていうように使えるんですね。
lambdaまんせー
perlのcurry化はえばりまくりそうな気もシルけど、subを使えばjavascriptと同じようにできる気がしてきた。