2017-03-07から1日間の記事一覧

関数を作り出す関数...それが高階関数

# curry.pl sub curry { my $func = shift; my @capture_arg = @_; return sub { return $func->(@capture_arg, @_); } } my $for_print = sub { print "@_\n"; }; my $printer = curry($for_print, "Hello,"); # 引数をキャプチャする $printer->("world!")…

Shift()でサブルーチン

# ref6.pl sub hellofunc { my $func = shift; return $func->("Hello!"); } hellofunc( sub { print "@_\n"; } ); # (1) hellofunc( sub { print "@_ World!\n"; } ); # (2) my $decorator = sub { return "***" . shift() . "***"; #shift()で受け取ったコ…