Que fait cette fonction lisp ?
Résolu/Fermé
ap3
Messages postés
215
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
10 mars 2021
-
20 déc. 2017 à 19:04
yoda - 21 déc. 2017 à 20:17
yoda - 21 déc. 2017 à 20:17
A voir également:
- Que fait cette fonction lisp ?
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
2 réponses
bendrop
Messages postés
12596
Date d'inscription
jeudi 30 juin 2005
Statut
Contributeur
Dernière intervention
19 novembre 2024
8 293
20 déc. 2017 à 20:00
20 déc. 2017 à 20:00
Bonsoir,
Merci d'utiliser les balises, à lire https://www.commentcamarche.net/infos/25911-ccm-astuces-et-conseils-pour-la-redaction/
Ceci dans le but d'être lisible.
Bav.
Merci d'utiliser les balises, à lire https://www.commentcamarche.net/infos/25911-ccm-astuces-et-conseils-pour-la-redaction/
(defun fct (liste1 liste2 liste3)
(cond ((eval liste1) (eval liste2) (fct liste1 liste2 liste3))
(t (eval liste3)))
)
Ceci dans le but d'être lisible.
Bav.
Bonjour
Cette fonction est une fonction récursive qui évalue 3 expressions lisp (liste1 liste2 et liste3)
equivalent à
ce qui signifie : tant que liste1 est different de nil on evalue liste2 sinon on retourne liste3
exemple (en autolisp, sinon adapter la syntaxe)
resultat:
5
4
3
2
1
0
"terminé"
Cette fonction est une fonction récursive qui évalue 3 expressions lisp (liste1 liste2 et liste3)
(defun fct (liste1 liste2 liste3)
(cond
((eval liste1) (eval liste2) (fct liste1 liste2 liste3))
(t (eval liste3))
)
)
equivalent à
(defun fct2 (liste1 liste2 liste3)
(if (eval liste1)
(progn
(eval liste2)
(fct2 liste1 liste2 liste3)
)
(eval liste3)
)
)
ce qui signifie : tant que liste1 est different de nil on evalue liste2 sinon on retourne liste3
exemple (en autolisp, sinon adapter la syntaxe)
(setq a '(cond ((>= x 0) (print x))))
(setq b '(setq x (- x 1)))
(setq c '(progn (print "terminé") (princ)))
(setq x 5)
;appel a la fonction
(fct a b c)
resultat:
5
4
3
2
1
0
"terminé"