L'évaluation des symboles est trop récursiveSalut,
Je suis nouveau à JSL et Je suis à la recherche de documentation (ou d'aide directe) pour comprendre la raison de cette erreur:
Symbol evaluation is too recursive (25 levels). in access or evaluation of 'gchFailed' , gchFailed/*###*/
Voici ce que je devine à quelle information pourrait être utile. Aidez-moi, s'il vous plaît. Merci d'avance!
J'ai deux scripts, un fichier principal et un fichier d'en-tête. Mon fichier principal include () est le fichier d'en-tête, qui est un ensemble de définitions de fonctions. Les deux scripts utilisent Names Default To Here (1), ce qui peut être le problème. J'ai beaucoup de fonctions qui utilisent le même nom de variable "gchFailed" comme variable locale. L'erreur est produite lorsque j'appelle les fonctions suivantes:
//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");
);
L'évaluation des symboles est trop récursiveMerci Jim! Je vois votre inquiétude et votre réponse m'a été utile
. J'essayais de commenter des sections de code pour réduire l'encombrement. J'ai exclu ces sections comme points problématiques possibles. Comme vous l'avez dit, s'assurer que les valeurs sont retournées (evalList) a bien fonctionné!
L'évaluation des symboles est trop récursiveMerci, Craige! Travaillé comme un charme. Je suppose que les expressions JMP me font encore trébucher.
L'évaluation des symboles est trop récursiveJe ne peux pas vous expliquer l'erreur récursive, cependant, je ne pouvais pas non plus voir comment votre code fonctionnerait compte tenu de ma compréhension de JSL. Le premier problème est que processGCHFile a été spécifié comme ne transmettant aucune variable, alors que dans votre code, vous transmettez 2 valeurs lors de l'appel de la fonction. J'ai donc commenté les valeurs transmises, car elles sont en fait indiquées comme des valeurs de retour. Le deuxième changement était juste un simple changement de "a == 1" pour permettre à la fonction IF () de se déclencher. Enfin, j'ai plus spécifiquement créé la liste de retours, puis je me suis assuré que sa valeur était la dernière valeur traitée pour que ce soit la valeur renvoyée.
J'espère que je comprends la question et que cela vous est utile.
L'évaluation des symboles est trop récursiveJe pense que la valeur retournée devrait ressembler à ceci:
evalList( {gchFailed, otherReturnValue} ); //return values
la liste contient donc des valeurs de variables plutôt que des noms de variables.