Bonjour,

J'essaie d’exécuter ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(defun newopen2 (felem lop) (mapcar '(lambda (y) ((eval y) felem)) lop))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(newopen2 '(1 2 3) '(g1 g2 g3 m1 m2 m3 p1 p2 p3))
Avec g1 g2 g3 etc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
(defun g1 (l) (if (eq (car l) 1) NIL (cons 1(cdr l))))
(defun g2 (l) (if (eq (car l) 2) NIL (cons 2(cdr l))))
(defun g3 (l) (if (eq (car l) 3) NIL (cons 3(cdr l))))
(defun m1 (l) (if (eq (car l) 1) NIL (if (eq (cadr l) 1) NIL (if  (eq (car l) (cadr l)) NIL (cons (car l) (cons 1 (cddr l)))))))
(defun m2 (l) (if (eq (car l) 2) NIL (if (eq (cadr l) 2) NIL (if  (eq (car l) (cadr l)) NIL (cons (car l) (cons 2 (cddr l)))))))
(defun m3 (l) (if (eq (car l) 3) NIL (if (eq (cadr l) 3) NIL (if  (eq (car l) (cadr l)) NIL (cons (car l) (cons 3 (cddr l)))))))
(defun p1 (l) (if (eq (car l) 1) NIL (if (eq (caddr l) 1) NIL (if (eq (car l) (caddr l)) NIL (if (eq (cadr l) (caddr l)) NIL (append (list(car l)) (list(cadr l)) (cons 1 ())))))))
(defun p2 (l) (if (eq (car l) 2) NIL (if (eq (caddr l) 2) NIL (if (eq (car l) (caddr l)) NIL (if (eq (cadr l) (caddr l)) NIL (append (list(car l)) (list(cadr l)) (cons 2 ())))))))
(defun p3 (l) (if (eq (car l) 3) NIL (if (eq (caddr l) 3) NIL (if (eq (car l) (caddr l)) NIL (if (eq (cadr l) (caddr l)) NIL (append (list(car l)) (list(cadr l)) (cons 3 ())))))))
Seulement j'ai une erreur : Argument to apply/funcall is not a function: (LAMBDA (Y) ((EVAL Y) FELEM)).

Comment résoudre ce problème ?

Merci d'avance !