てきとうなメモ

本の感想とか技術メモとか

関数の中の関数

言語を選ぶ基準 - lethevert is a programmer

Perlで書くとRubyみたいになるかなと思ってたけど

sub f {
  my $x = shift;
  my $g = sub { my $y = shift; $x + $y };
  my $h = sub { my $x = shift; $g->(10) };
  $h;
}

print f(10)->(1), "\n";
$ perl hoge.pl
20

これでも大丈夫みたい

sub f {
  my $x = shift;
  sub g { my $y = shift; $x + $y };
  sub h { my $x = shift; g(10) };
  \&h;
}
print f(10)->(1), "\n";
$ perl fuga.pl
20

あまり使うことはなさそうだけども