Perl の y 関数
http://d.hatena.ne.jp/tokuhirom/20080205/1202191116
Perl には y 関数というものがあって、 Autobox を使うと以下のように使えるらしい
http://search.cpan.org/~stevan/Moose-Autobox-0.06/lib/Moose/Autobox/Code.pm
*factorial = sub { my $f = shift; sub { my $n = shift; return 1 if $n < 2; return $n * $f->($n - 1); } }->y;
JavaScript でも作ってみた
Function.prototype.__defineGetter__('y', function() { var f = this; return function g(m) { return f(g)(m); }; }); var f = (function(f) { return function(n) { return n < 2 ? 1 : n*f(n - 1) } }).y; f(7)
まあ、出来てあたりまえか。 Perl で出来ることがすごいって話でしたね。