comment lier les éléments d'une liste à des fonctions ?
Bonjour,
Voilà mon code:
Code:
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 donne ce que je veux :
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 :
Code:
1 2
|
(dolist (f '(f0 f1 f2))(funcall f 10)) |
(j'ai pas mis le print)
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.