不動点演算子
Posted feedbacks - Perl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | sub fix {
my $G = shift;
return $G->( sub { my $x = shift; return fix($G)->($x);} );
}
our $Z = sub { my $f = shift;
sub { my $x = shift;
sub { my $y = shift;
$f->($x->($x))
}
}->(sub { my $x = shift;
sub { my $y = shift;
$f->($x->($x))
}
})
};
|


matarillo
#5680()
Rating2/4=0.50
不動点演算子とは、関数を引数に取り、その関数の不動点を返すような関数です。 つまり、不動点演算子である関数gが関数fを引数に取るとき、 f(g(f)) = g(f) となります。
お題は不動点演算子を実装することです。(Yコンビネータを実装しても結構ですが、それ以外でも、コンビネータになっていなくてもOKとします)
see: Wikipedia
[ reply ]