Aller au contenu

Arguments et Variables


Messages recommandés

Posté(e)
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

Posté(e)

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

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é