Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Withの束縛の取扱いがおかしい
Date: 2012/06/06(Wed) 15:33:22
ContributorAkio Morita

同一シンボルに対して、Withで束縛する場合の動作が一貫していないように見えます

例題として
With[{val = foo},
Scan[With[{val = #}, Print[ToString[val]]]&, {1, 2, val, 3, 4}]];
を考えます。ここで、内側のWithで束縛される valは Scan[]に与えた純関数スコープで閉じています。

期待される出力は、
1
2
foo
3
4
となります

ここで、fooに NaNを設定した式
With[{val = NaN},
Scan[With[{val = #}, Print[ToString[val]]]&, {1, 2, val, 3, 4}]];
を評価すると出力は
NaN
NaN
NaN
NaN
NaN
となり、内側のWithによる valの再束縛に失敗しているように見えます


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)