2008年05月01日 20:30 [Edit]
perl - で(Recall()|arguments.callee()|&?BLOCK())
Perl Coreだけで同様のことを実装できないかと考えたらあっさり出来たので。
- Perl で JS の arguments.callee 的なことしようと思ってハマった - IT戦記
- それDevel::Caller でできるよ - TokuLog 改め だまってコードを書けよハゲ
test run via codepad
sub recallable_sub(&) {
use B::Deparse;
my $coderef = shift;
my $src = B::Deparse->new->coderef2text($coderef);
$src =~ s{\bRecall\s*\(}{\$coderef->\(}g;
$coderef = eval qq"sub $src";
die $@ if $@;
$coderef;
}
local $\ = "\n";
print recallable_sub {
$_[0] <= 1 ? 1 : $_[0] * Recall( $_[0] - 1 );
}
->($_) for (1..9);
ね、簡単でしょ?
Dan the Perl Monger
See Also- 404 Blog Not Found:R - 汎用言語としても素敵なんでR - R言語の例
- 404 Blog Not Found:perl - "@{[ Interpolate->any->given('expression') ]}" - Perl 6 の例
Posted by dankogai at 20:30│Comments(0)│TrackBack(2)
この記事へのトラックバックURL
この記事へのソーシャルブックマーク
この記事へのトラックバック
Perl Coreだけで同様のことを実装できないかと考えたらあっさり出来たので。 Perl で JS の arguments.callee 的なことしようと思ってハマった - IT戦記 それDevel::Caller でできるよ - TokuLog 改め だまってコードを書けよハゲ sub recallable_sub(&) { use B::Depar
[perl]PerlでRecallの話【Unknown::Programming】at 2008年05月03日 20:12
これまでのあらすじから。
Perl で JS の arguments.callee 的なことしようと思ってハマった - IT戦記
それDevel::Caller でできるよ - TokuLog 改め だまってコードを書けよハゲ
404 Blog Not Found:perl - で(Recall()|arguments.callee()|&?BLOCK())
PerlでRe...
perl - で無名再帰関数再び【404 Blog Not Found】at 2009年02月15日 10:53

