famaice Posté(e) le 7 novembre 2014 Posté(e) le 7 novembre 2014 En conclusion, en LISP la "portée" d'une variable locale dans une fonction s'étend à toutes les fonctions appelée par elle. -> Voir le petit schéma en pièce jointe, :blink: Si je pige bien, cela veux dire que : 1 - Si je déclare les variables ( a et b ) dans ma fonction LISP principale (genre DEFUN c:main (/ a B) ), elles seront traitées dans toutes les sous-fonctions définies dans ma routine pendant son execution, et passeront à nil dès la fin de l'execution de ma routine principale (fleche verte dans le schéma). 2 - Si je déclare une variable locale dans une sous-fonction (ex. s/sfonction 2 (/ c)), elle n'est traité que dans la sous-fonction 2 et retourne à nil dés que l'on sort de la s/sfonction (fleche bleu), 3 - Si j'utilise une variable dans mon programme qui n'est pas déclarée en local (ex. la variable d ), d devient une variable globale dans le dessin courant (fleche rouge). C'est un point crucial que j'aimerais éclaircir parce que j'ai quelques routines à débugger :( et je crois que certains résultats "inattendues" sont liés à ces localisation de variables. une ame charitable pour m'indiquer si je suis sur la bonne voie... ""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA
VDH-Bruno Posté(e) le 7 novembre 2014 Posté(e) le 7 novembre 2014 Bonjour famaice, A te lire oui, je pense que tu as bien compris l'idée, pour finir de t'en convaincre, tu peux essayer les lignes de codes du message n°12 qui illustre bien le propos, tu peux également étendre ce raisonnement aux noms de fonction comme suggéré dans le message n°8 avec la redéfinition de la fonction *error*. Ce qui par la suite t'amènera à comprendre qu'en VLisp, il n'y a pas vraiment de différence entre données et fonctions… A+ Apprendre => Prendre => Rendre
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant