Patrick_35 Posté(e) le 20 mai 2007 Posté(e) le 20 mai 2007 Pour ceux qui savent résoudre rien qu'en lisant ce nouveau défit, je leurs demande de bien vouloir patienter jusqu'à Lundi soir avant de donner leur solution afin de permettre aux autres de rechercher. Je pense qu'il est d'un niveau intermédiaire J'ai une liste qui se compose de cette manière(setq lst '(1 2 3 5 7 10 11 12 14 20 30 31 33 37 39 40 44 76 80))J'aimerai un liste qui ne contienne que les chiffres pair @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Tramber Posté(e) le 20 mai 2007 Posté(e) le 20 mai 2007 Enfin un challenge pour lequel j'ai la réponse du premier coup, et sans papier ni ordi ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Patrick_35 Posté(e) le 21 mai 2007 Auteur Posté(e) le 21 mai 2007 oui, bah pas beaucoup de réponses :( Soit c'est trop dur pour ceux qui comment à maitriser le lisp, ou trop facile pour ceux qui connaissent @+ 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 21 mai 2007 Posté(e) le 21 mai 2007 Salut,On est lundi soir, il est assez tard, et demain je n'aurais pas le temps de proposer ma solution, donc je commence :(defun GetPair (lst / l) (foreach n lst (if (equal (fix (* n 0.5)) (* n 0.5)) (setq l (append l (list n))) ) ) )... à vous maintenant !.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 21 mai 2007 Auteur Posté(e) le 21 mai 2007 Salur BredTu peux éviter le foreach, comme le repeat et while ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bonuscad Posté(e) le 21 mai 2007 Posté(e) le 21 mai 2007 et si on ce limite aux entiers valides comme pour ta liste, toujours avec un foreach ((lambda ( / l) (foreach n '(1 2 3 5 7 10 11 12 14 20 30 31 33 37 39 40 44 76 80) (if (zerop (rem n 2)) (setq l (cons n l))) (reverse l)))) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Bred Posté(e) le 22 mai 2007 Posté(e) le 22 mai 2007 Tu peux éviter le foreach, comme le repeat et while Ben voyons, pourquoi faire compliqué ??? :P(vl-remove-if-not '(lambda (x) (equal (fix (* x 0.5)) (* x 0.5))) lst)merci ! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
ElpanovEvgeniy Posté(e) le 22 mai 2007 Posté(e) le 22 mai 2007 Salut! Ma variante. :) (vl-remove-if-not '(lambda (x) (zerop(logand x 1))) lst) Evgeniy
Patrick_35 Posté(e) le 22 mai 2007 Auteur Posté(e) le 22 mai 2007 Bravo à vous tous :D Je n'avais pas pensé au logand et au rem pour déterminer un nombre pair. Je faisais exactement comme Bred. Comme quoi, ces challenges.... ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 22 mai 2007 Posté(e) le 22 mai 2007 Salut, (vl-remove-if-not '(lambda (n) (zerop (rem n 2))) lst) Edit : je n'avais pas bien lu le message de Patrick_35 ci-dessus, mais comme je me retenais de la poster depuis le début, je la laisse. [Edité le 22/5/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 22 mai 2007 Posté(e) le 22 mai 2007 Comme quoi, ces challenges....c'est génial !!! .... mais personnellement je délaisse le reste du forum...c'est trop prenant !!!! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
ElpanovEvgeniy Posté(e) le 24 mai 2007 Posté(e) le 24 mai 2007 (vl-remove-if-not '(lambda (x) (zerop(boole 1 x 1))) lst) (vl-remove-if '(lambda (x) (= x (logior x 1))) lst) (vl-remove-if-not '(lambda (x) (= x (* (/ x 2) 2))) lst) Evgeniy
ElpanovEvgeniy Posté(e) le 24 mai 2007 Posté(e) le 24 mai 2007 :D (vl-remove-if '(lambda (x) (wcmatch (rtos (/ x 2.) 2 2) "*.[1-9]*")) lst) Evgeniy
Patrick_35 Posté(e) le 24 mai 2007 Auteur Posté(e) le 24 mai 2007 je vois que tu t'amuses ;) et que tu nous montre par la même occasion toutes les subtilités du lisp.Merci :D @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ElpanovEvgeniy Posté(e) le 25 mai 2007 Posté(e) le 25 mai 2007 je vois que tu t'amuses ;) et que tu nous montre par la même occasion toutes les subtilités du lisp.Merci :D @+ Oui, cela ainsi.Pour chaque devinette, on peut regarder de diffйrentes parties... (vl-remove-if '(lambda (x) (wcmatch (itoa x) "*[13579]")) lst) Evgeniy
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