<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
変数の一意の値ごとに、ループ内で複数回実行しようとしている関数があります。ループの外で実行するとすべてがうまく機能します。関数呼び出しなしで実行するとループは正常に実行されます。さまざまな部分を異なるEvalでラップしてみたところ、何も壊れませんでしたが、役に立ちませんでした。
最初の反復は正常に実行され、runBTの結果は正しいです。runBT( "clstr2"、1)を実行した場合runBT( "clstr2"、2);ループの外側では、毎回正しい結果が返されます。ループ内でrunBTをコメントアウトすると、i = 1が表示された後、i = 2が表示され、予想どおり両方の時間にわたって繰り返されます。コメントアウトしないと、関数を1回正しく実行してから終了します。最初の反復の後に「ループ終了」と表示され、エラーは発生しません。
clust2vals =連想配列(dt:clstr2)<<キーを取得。
n = Nアイテム(clust2vals);
show(n); // n = 2
show(clust2vals [1]); // = 1
show(clust2vals [2]); // = 2
(i = 1、i <= n、i ++、
show(i);
myab = runBT( "clstr2"、clust2vals ;
表示(myab)
;
show( "loop ended");
私の推測では、runBT関数は、グローバルスコープを持つように、iまたはn変数を変更しています。あなたは、あなたの関数の中でローカル変数を使うか、または名前空間を使うことによってそれを避けることができます。