Bonjour,
Voilà mon code:
Il donne ce que je veux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 (defun trois-fn (u v w) (list #'(lambda (y) (+ (* u y) 4)) #'(lambda (y) (- (* v y) 4 )) (function (lambda (y) (* w y))) ) ) (setf fns (trois-fn 3 -3 1)) (setf f0 (nth 0 fns)) (setf f1 (nth 1 fns)) (setf f2 (nth 2 fns)) (print (funcall f0 10)) (print (funcall f1 10)) (print (funcall f2 10))
Il calcule la valeur pour y=10 de trois fonctions affines.
(j'ai utilisé #' et (function ...) pour me rappeler l'équivalence ....)
Mais je voudrais faire l'affichage avec :
(j'ai pas mis le print)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 (dolist (f '(f0 f1 f2))(funcall f 10))
Comme je m'en doutais cela ne marche pas ;-) comment peut-on lier les fonctions f0, f1, f2 avec les symboles 'f0, 'f1, 'f2 de la liste ?
Merci d'avance pour une indication.
rutabagas.
Partager