Aller au contenu

Addition de drapeaux


l56

Messages recommandés

Salut

 

Un vite fait

 

(defun bits(nb / n lst)
 (foreach n '(1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536)
   (or (zerop (logand nb n))
     (setq lst (cons n lst))
   )
 )
 (reverse lst)
)

 

(bits 22) --> (2 4 16)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Un peu plus évolué de manière itérativ (gile va bien en faire une récusive ;) )

 

(defun bits(nb / n lst)
 (setq n 1)
 (while (> nb 0)
   (or (zerop (logand nb n))
     (setq lst (cons n lst)
    nb (- nb n)
     )
   )
   (setq n (* n 2))
 )
 (reverse lst)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

gile va bien en faire une récusive

 

Une récursive :

 

(defun bits (n / b)
 (if (/= 0 n)
   (cons (setq b (expt 2 (fix (/ (log n) (log 2)))))
  (bits  (- n b))
   )
 )
) 

 

Et une itérative :

 

(defun bits  (n / b l)
 (while (/= 0 n)
   (setq b (expt 2 (fix (/ (log n) (log 2))))
  l (cons b l)
  n (- n b)
   )
 )
 l
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Rien à voir, désolé :

 

citation extraite du message original:

gile va bien en faire une récusive

 

Une récursive :

(...)

 

(gile) m'ecoeure de plus en plus....

Il me fait penser à ce que l'on dit sur le dessinateur de BD Moebius : si un jours vous avez envies de vous mettre à la BD, ne regardez pas ce qu'il fait, vous trouverez ça tellement parfait que vous serez dégoutez avant de commencer....

(citation d'Eddy MITCHEL je crois)

 

Ben, pour (gile) c'est pareil, au niveau du lisp....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

J'avais déjà cette fonction (peut-être même déjà publiée ici) je n'ai fait que la traduire avec un while pour le fun.

 

J'ai retrouvé, c'était ici et j'en avais donné une autre version , en fait j'avais pensé un temps à un "challenge" sur cr thème.

 

[Edité le 20/9/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

(gile) m'ecoeure de plus en plus....

Il me fait penser à ce que l'on dit sur le dessinateur de BD Moebius : si un jours vous avez envies de vous mettre à la BD, ne regardez pas ce qu'il fait, vous trouverez ça tellement parfait que vous serez dégoutez avant de commencer....

(citation d'Eddy MITCHEL je crois)

 

Ben, pour (gile) c'est pareil, au niveau du lisp....

 

C'est vrai que j'aurais bien voulu comprendre le Lisp et en faire mais le niveau est tellement élevé, que ça m'a dégouté et du coup, je pousse bien fort sur le VBA.

 

 

P.S. tout comme un certain Bjorn Berge m'a dégouté de la guitare... Pour ceux qui ne connaissent pas, il fait en de moment une tournée en France, je vais le revoir le 28 novembre au Confort Moderne à Poitiers (86).

 

[Edité le 20/9/2007 par sechanbask]

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Lien vers le commentaire
Partager sur d’autres sites

mais le niveau est tellement élevé, que ça m'a dégouté

Il ne faut pas. :(

J'ai vu (gile) progresser, comme Bred qui maintenant arrive à faire des choses sympas :)

On a tous commencé comme vous, tout doucement.

Je vois des lisps qui pourraient être amélioré (et aucun commentaires désobligeants de la part de ceux qui maitrisent bien le lisp, au contraire), mais chaque choses vient en son temps.

Le principal, c'est que son auteur soit satisfait du résultat.

Ce qui est bien aussi avec des personnes comme (gile), c'est qu'on peut admirer le style, s'en inspirer afin de se perfectionner et d'évoluer ainsi petit à petit. C'est grâce à ces petits morceaux de lisps que l'on arrive à progresser.

Surtout n'abandonnez pas, car vous avez sur ce site des personnes pleines de bonnes volontés et qui n'hésitent pas à partager leurs temps et leurs connaisances.

 

@+

 

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Patrick_35 a tout dit, je n'aurais rien à ajouter si ce n'est que, si je suis sensible au "style", ce n'est pas ça le principal et certaines routines bien que fort élégantes sont parfois moins performantes que que d'autres qui semblent "moins bien tournées" (l'utilisation de la récursivité est un bon exemple, les routines souvent plus concises sont généralement moins rapides que leurs équivalentes itératives).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir à toutes et tous,

 

Patrick_35 à raison :

 

Il ne faut pas.

 

et sechanbask aussi :

 

C'est vrai que j'aurais bien voulu comprendre le Lisp et en faire mais le niveau est tellement élevé, que ça m'a dégouté et du coup, je pousse bien fort sur le VBA.

, par contre, j'apprécie personnellement également beaucoup tes interventions sechanbask, car le VBA est aussi trés puissant et il est bien de pouvoir tout utiliser, même si pour le moment on comprend pas tout, en conclusion :

 

On a tous commencé comme vous, tout doucement.

 

Te plaind pas, sechanbask , moi je n'ai encore aucun terrain "fort", mais cette situation ne me gène pas trop, car comme dis Patrick_35 :

 

Surtout n'abandonnez pas, car vous avez sur ce site des personnes pleines de bonnes volontés et qui n'hésitent pas à partager leurs temps et leurs connaisances.

, et ils se reconnaitrons,..

 

Encore une fois, merci à vous tous car maintenant, j'ai vraiment envie de passer à la vitesse supérieure et c'est grace à vous (et oui, même grace à toi sechanbask,.....

 

A trés bientôt.

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

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é