Bred Posté(e) le 31 mars 2007 Posté(e) le 31 mars 2007 Salut,dernièrement, j'ai remarqué que la "mode" ( ;) ) était au routine imbriquant plusieurs (defun ...Je me demandais ce que cela amenait par rapport à des routines ou sous-routine détaché totalement. A moins que cela ne soit que pour une raison "ponctuel" ??? merci. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Tramber Posté(e) le 31 mars 2007 Posté(e) le 31 mars 2007 C'est pas une mode, c'est de l'organisation, notamment pour les gestions d'erreurs. La règle serait : quand une routine n'est pas nécessaire ailleurs, on peut l'enfermer. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
(gile) Posté(e) le 31 mars 2007 Posté(e) le 31 mars 2007 Juste pour préciser ce que dit Tramber, ce n'est pas tant d'imbriquer un defun dans un autre qui peut être judicieux, mais de déclarer le defun imbriqué comme variable locale.De cette façon la définition n'est valable qu'à l'intérieur du defun "parent" et retourne à nil à la fin de la fonction ce qui, outre l'économie de mémoire, évite tout risque de conflit avec un autre defun du même nom. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 31 mars 2007 Posté(e) le 31 mars 2007 Et je dirais même plus ;)Cela permet d'avoir une fonction avec ses sous fonctions propres qui évitent tout confilt potentiel, de faire plus propre.De plus, si on déclare une sous fonction comme une variable local, elle ne restera pas en mémoire.Comme test, tu peux faire(setq memo (atoms-family 1))tu lances un/des lisps puis ensuite(vl-remove-if '(lambda (x) (member x memo)) (atoms-family 1))ce qui te permet de voir quelles sont les variables qui ont été oubliées d'être déclarées en local ainsi que les nouvelle fonctionnalitées. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 31 mars 2007 Auteur Posté(e) le 31 mars 2007 Merci. Patrick_35 : ton test vient de me révéler une chose :.... j'ai un sacré boulot de nettoyage à faire !!! :( Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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