Aller au contenu

Arguments et Variables


Fraid

Messages recommandés

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... :rolleyes:

post-15026-0-17197800-1415362714_thumb.png

""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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité