VDH-Bruno Posté(e) le 6 octobre Posté(e) le 6 octobre il y a 18 minutes, Patrick Emin a dit : Oui, tout à fait, il suffirait d'adapter le prompt pour exclure les fractions, moi je l'avais explicitement demandée. (réponse sur mon site) Perso, j'aurais préféré une conversion en valeur réelle, c'est un choix 😉 Apprendre => Prendre => Rendre
Patrick Emin Posté(e) le 6 octobre Posté(e) le 6 octobre il y a 1 minute, VDH-Bruno a dit : Perso, j'aurais préféré une conversion en valeur réelle, c'est un choix 😉 Oui, tout dépend du résultat souhaité, il suffit d'adapter la question (le prompt) pour obtenir une réponse conforme à ce que l'on souhaite. mon site perso Dessein-Tech
(gile) Posté(e) le 6 octobre Auteur Posté(e) le 6 octobre Comme promis, je donne ma version récursive "plus concise". C'est la même que la troisième proposition de @VDH-Bruno en un peu moins concise mais insensiblement plus "rapide" puisqu'elle fait un appel récursif de moins dans les cas d'un nombre ou d'un point suivi d'un chiffre et un peu plus robuste puisqu'elle contrôle aussi la présence d'un point dans nombre en cours de reconstitution. (defun extraireNombres (str / loop) (defun loop (lst dot acc) (cond ((and (null lst) (null acc)) nil) ((isDigit (car lst)) (loop (cdr lst) dot (cons (car lst) acc)) ) ((and (isHyphen (car lst)) (isDigit (cadr lst)) (null acc)) (loop (cddr lst) dot (cons (cadr lst) (cons (car lst) acc))) ) ((and (not dot) (isDot (car lst)) (isDigit (cadr lst)) acc) (loop (cddr lst) T (cons (cadr lst) (cons (car lst) acc))) ) (acc (cons (read (vl-list->string (reverse acc))) (loop (cdr lst) nil nil)) ) (T (loop (cdr lst) dot acc)) ) ) (loop (vl-string->list str) nil nil) ) La même fonction peut être écrite avec une boucle (while ...) et beaucoup de (setq ...). (defun extraireNombres (str / lst num dot nums) (setq lst (vl-string->list str)) (while lst (cond ((isDigit (car lst)) (setq num (cons (car lst) num) lst (cdr lst) ) ) ((and (isHyphen (car lst)) (isDigit (cadr lst)) (null num)) (setq num (cons (cadr lst) (cons (car lst) num)) lst (cddr lst) ) ) ((and (isDot (car lst)) (isDigit (cadr lst)) (not dot) num) (setq num (cons (cadr lst) (cons (car lst) num)) lst (cddr lst) dot T ) ) (num (setq nums (cons (read (vl-list->string (reverse num))) nums) num nil dot nil lst (cdr lst) ) ) (T (setq lst (cdr lst)) ) ) ) (if num (setq nums (cons (read (vl-list->string (reverse num))) nums)) ) (reverse nums) ) Concernant la prise en compte de certains caractères (comme la barre de fraction), j'aurais dû être plus clair en précisant "la liste des nombres entiers et réels". il y a une heure, VDH-Bruno a dit : Perso, j'aurais préféré une conversion en valeur réelle Ça peut faire l'objet d'un autre challenge ou d'un ajout à celui-ci... Sinon, désolé @Patrick Emin, mais je pense que mêler l'IA à ce sujet est une vraie pollution (au sens propre comme au figuré). 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick Emin Posté(e) le 6 octobre Posté(e) le 6 octobre il y a 6 minutes, (gile) a dit : Sinon, désolé @Patrick Emin, mais je pense que mêler l'IA à ce sujet est une vraie pollution (au sens propre comme au figuré). C'est pourquoi j'ai préféré en parler sur mon site mon site perso Dessein-Tech
bonuscad Posté(e) le 6 octobre Posté(e) le 6 octobre Citation je pense que mêler l'IA à ce sujet est une vraie pollution (au sens propre comme au figuré). Excusez, mais je veux réagir brièvement à ce ce sujet. l'I.A. est pour moi du même acabit que les calculateur automobile. Citation Vous avez un défaut d'alimentation avec l'ODB: il faut changer la rampe d'injection. Merci le mécano de mes deux, c'est la pompe de gavage et c'est pas le même prix! (vécu) Je vous laisse réfléchir aux diagnostiques de ces "intelligences" et celui du pseudo mécanicien aussi. Bien à vous. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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