ishiducaの日記 このページをアンテナに追加 RSSフィード

2011-02-19

[]カリー化 その2 21:58 カリー化 その2 - ishiducaの日記 を含むブックマーク はてなブックマーク - カリー化 その2 - ishiducaの日記 カリー化 その2 - ishiducaの日記 のブックマークコメント

昨日(カリー化 - ishiducaの日記)」の続き。

カリー化する関数を作ってみる(curry)

use strict;
use warnings;

# カリー化する関数
sub curry {
    my $func = shift;
    my @arg  = @_;
    sub { $func->(@arg, @_); };
}
# 合計する関数
sub sum {
    my $s;
    $s += $_ for @_;
    $s;
}

my $sum   = \∑

print $sum->(1, 2, 3);                     # 6
print curry($sum, 1)->(2, 3);              # 6

my $curry = \&curry;

print $curry->($sum, 1)->(2, 3);           # 6
print $curry->($curry->($sum, 1), 2)->(3); # 6

これでいいのかな?

というか、これだと嬉しくない...orz

YgorYgor2014/05/06 23:47Thanks for your thtshgou. It's helped me a lot.

トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20110219