rimbo Posté(e) le 2 mars 2004 Posté(e) le 2 mars 2004 je suis en train d'écrire la base du lisp que j'ai eu appris mais je ne rappelle plus vraiment l'utilité de NILmon cours dis que nil met une variable a moin que 0, elle n'existe pas.peut on réutiliser une variable qui a etait mis a nil. Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
Patrick_35 Posté(e) le 2 mars 2004 Posté(e) le 2 mars 2004 Oui, ça veux dire que la variable n'a aucune valeur ou qu'elle n'existe pasTu peut faire une boucle sur la table des layers par exemple avec un (tblnext "layer") et une fois que tu pointe sur le nil, la boucle est terminé un exemple qui compte le nombre de calques dans un dessin (tblnext "layer" T) ; pointe sur le premier calque(setq tot 0)(while (tblnext "layer") (setq tot (1+ tot)))(princ (strcat "\n" (itoa tot) " calques"))(princ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Labletech Posté(e) le 2 mars 2004 Posté(e) le 2 mars 2004 tu l'as dit bouffe nil !!en fait le nil est l'oméga du lispAvant la lumière, le feu et l'eau , il y avait:- le nilC'est le pointeur de référence sur la 1ère liste du lisp. Le lisp est une succession de listes avec un pointeur bas et un pointeur haut dans la mémoire de ton ordinateur un peu comme les couples pointés des entités d'autocad (0 . "INSERT")C'est le pointeur haut qui porte la valeur du pointeur bas. La vie à deux est une nécessité pour un moteur lisp. D'où la notion de symbole porteur d'informations secondaires. et bien le 1er couple de référence qui permet à la machine lisp de se booter sur ton ordinateur est (nil . nil) une sorte de zéro absolu ....partant de cela tout ce qui n'est pas nil peut alors exister et aura donc un valeur symbolique ...pour illustrer de façon rigolote cette notion de symbole porteur voici quelques lignes pour les 'nil': (setq formateur "passionné")(setq apprenti_formateur nil)(setq rimbo 'formateur)(setq labletech 'apprenti_formateur) (eval rimbo) et puis (eval labletech) donnent quoi à votre avis ??.Bienvenu dans la notation symbolique qui donne tout son sens à nil ... ;) Formateur ATC Autocad - Mechanical - Inventor - Electrical
rimbo Posté(e) le 2 mars 2004 Auteur Posté(e) le 2 mars 2004 ouf, vos explication sont très fortes mais j'ai quand même l'impression d'être devant un épisode de xfiles, j'a bien fait de poser la question...Bon si j'ai bien compris ton exemple labletech:(setq formateur "passionné") met passionné dans la variable formateur(setq apprenti_formateur nil) ? vide la variable apprenti_formateur ??(setq rimbo formateur) :casstet: sa s'empire euhhhh mais passionné dans rimbo via la variable formateur ???(setq labletech apprenti_formateur) ??? labletech retourne nil ???? au fait pour retourner une variable j'avais appris !rimbo(eval rimbo) ????? Désolé mais vous voyez y a vraiment besoin de la base... Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
Labletech Posté(e) le 2 mars 2004 Posté(e) le 2 mars 2004 Un peu d'humour ne fait pas de mal parfois en tout cas ca peut détendre... Ceci dit mes deux dernières phrases lisp avaient une coquille:il fallait lire(setq rimbo 'formateur)(setq labletech 'apprenti_formateur) j'avais oublié l'apostrophe devant formateur et apprenti_formateur pour info: !rimbo c'est la même chose que (eval 'rimbo) et non (eval rimbo) en fait !rimbo ou encore (eval 'rimbo) evalue le contenu simple de rimboc'est à dire son pointeur haut ,c'est a dire le symbole formateur Alors que (eval rimbo) c'est comme (eval (eval 'rimbo)) ca évalue le contenu du contenu de rimbo ... c'est à dire son pointeur bas, c'est à dire le mot "passionné". Ce qui est rigolo dans l'histoire c'est que si tu te demande qui est rimbo au 1er degré??C'est un formateur voilà tout...Mais au fond des choses par delà la nature de l'homme qui est vraiment rimbo ??C'est un passionné voyez vous ... D'où la notion de pointeur haut et bas de l'article précédent. En fait une entité lisp peut au moins posséder 2 ensembles de valeurs, à contrario nil ne possède rien d'autre que nil et nil donc nil. C'est le début de toute chose en lisp. (ca valait le coup de s'attarder au moins sur ce 1er élément fondamental du lisp) On pourra développer de toute façon le concept du haut cet article (notation symbolique et programmation récursive) qui est très interessant (parceque compact et puissant) et unique à des langages de piles comme peut l'être le lisp. Formateur ATC Autocad - Mechanical - Inventor - Electrical
Patrick_35 Posté(e) le 3 mars 2004 Posté(e) le 3 mars 2004 Je ne connaissais pas cette subtilité avec les deux pointeurs et j'ai eu entre parenthèse un peu de mal à comprendre, mais je me demande à quoi ça peut servir concrètement. Définir une variable avec deux valeurs en simultanées, autant faire deux variables, mais c'est quand même utile à connaître.Juste une question pour Rimbo, sait-tu à quoi sert une variable ? Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
rimbo Posté(e) le 3 mars 2004 Auteur Posté(e) le 3 mars 2004 D'après ce que je connais d'une variable elle sert à stocké une information, une coordonnées, une valeur, un nom .... mais peut-être quelle fait plus que cela, je suis débutant... Merci a labletech, la lumière met apparut, je vois clair maintenant et ce monde me parait différent.... Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
Patrick_35 Posté(e) le 3 mars 2004 Posté(e) le 3 mars 2004 Ou encore faire des tables, des listes sur une variable, mais c'était pour essayer d'être plus clair sur le nil et comme la lumière fût, je m’éclipse @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
rimbo Posté(e) le 3 mars 2004 Auteur Posté(e) le 3 mars 2004 merci pour tes infos supplémentaire patrick_35, pour les tables et le reste faut que je voie ça doucement merci pour la précision.C'est la joie de ce forum ou chacun apporte des infos supplémentaire, on ne peut que crouler sous l'abondance c'est cool.... Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
Labletech Posté(e) le 3 mars 2004 Posté(e) le 3 mars 2004 Juste un mot de plus... j'ai donné ces infos uniquement pour expliquer les fondements d'un langage de pile et la première pierre de cette pile étant nil ... on revient à la case départ. quant-à l'utilité de l'exemple en particulier il est nil justement, il n'avait pas d'autres buts que de faire sourire .. et d'introduire à la notation symbolique (après on en a rien à .. de savoir qu'il y a un pointeur haut ou bas dans un symbole). par contre nous aurons certainement l'occasion de démontrer le réel intérêt à utiliser la notation symbolique, elle permet de couts fumeux en programmation orientée objet .. mais on parlera de cela dans l'autre thème lisp ... Formateur ATC Autocad - Mechanical - Inventor - Electrical
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