[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 08/14 02:13 / Filesize : 62 KB / Number-of Response : 272
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 59箱目



65 名前:デフォルトの名無しさん mailto:sage [2013/07/27(土) 22:03:13.88 ]
>>55
前スレ869ですが元となったコードを完全に乗せると以下の様な物になります。
DSLのメソッドチェーンをreduceで処理しようとしていました。
具体的に言うとfn(a)(b)(c)というシンタックスを(fn, a, b, c)に正規化し
fnをaに適用しその返り値をbに適用しその返り値をcに適用するという処理です。
これはまさにreduceの出番だと合点したものでしたが
猫を電子レンジで乾かすようなものだったのですね。

return reduce {
my ($func, $argv) = ($a, $b);

my @evaled_argv = eval_argv($argv);
my $env = []; # reduceの中はスコープがきられない
my $lexical_table = {};
my $arg_set;

my $closure = my_eval($func);
my $func_body = str_to_show($closure->[1]);
@{$env} = (@{$closure->[2]}, $lexical_table);
push @envs, $env;

my $i=0;
for (@evaled_argv) {
$envs[-1][-1]{"_ARG$i"} = $_;
$i++;
}

my $result = my_eval($func_body, "text");
pop @envs;
$result
} @normalized;






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<62KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef