シンボル評価が再帰的すぎるこんにちは、
私はJSLが初めてですこのエラーが発生した原因を突き止めるためのドキュメント(または直接ヘルプ)を探しています。
Symbol evaluation is too recursive (25 levels). in access or evaluation of 'gchFailed' , gchFailed/*###*/
これはどのような情報が役立つのかを推測したものです。私を助けてください。前もって感謝します!
メインファイルとヘッダーファイルの2つのスクリプトがあります。私のメインファイルはinclude()のヘッダファイルです。これはたくさんの関数定義です。どちらのスクリプトも、ここでの名前の既定値(1)を使用しているため、問題がある可能性があります。ローカル変数として同じ変数名 "gchFailed"を使う関数がたくさんあります。次の関数を呼び出すとエラーが発生します。
//within header file, function definition
processGCHFile = function({}, {Default Local},
gchFailed = 0;
if(/* failCase */, gchFailed = 1);
{gchFailed, otherReturnValue}; //return values
);
//within main = function({}, {Default Local}, /*main code*/)
gchRet = processGCHFile(gchFile, saveMap); //return values
gchFailed = gchRet[1]; //this works fine
gchDT = gchRet[2];
if(gchFailed, //this throws the error
print("Failed");
);
再:シンボル評価は再帰的すぎるありがとう、ジム!私はあなたの懸念を見て、あなたの返事は私にとって役に立ちました:)。私は混乱を減らすためにコードの一部をコメントアウトしようとしていました。私はそれらのセクションを可能性のある問題点として除外しました。あなたが言ったように、値が返されることを確認すること(evalList)はうまくいった!
再:シンボル評価は再帰的すぎるありがとう、Craige!魅力のように働いた。私はJMP表現がまだ私をつまずかせていると思います。
再:シンボル評価は再帰的すぎる私はあなたに再帰的なエラーを説明することはできません、しかし私はまたあなたのコードがJSLの私の理解を考えるとどのように働くか見ることができませんでした。 最初の問題は、processGCHFileが変数を渡さないように指定されているのに対して、コードでは関数を呼び出すときに2つの値を渡していることです。 そのため、実際には戻り値として示されているので、渡される値はコメントアウトしました。 2番目の変更は、IF()関数がトリガーできるようにするための "a == 1"の単純な変更です。 最後に、戻り値リストをより具体的に作成し、それが戻り値であることを確認するために、その値が最後に処理された値になるようにしました。
私は問題を理解していることを願っています、そしてこれはあなたにとって有益です。
再:シンボル評価は再帰的すぎる戻り値は次のようになるはずです。
evalList( {gchFailed, otherReturnValue} ); //return values
そのため、リストには変数の名前ではなく変数の値が含まれています。