Bonjour, j'ai une fonction a faire en Lisp mais je rencontre quelques difficultés, elle est censée rajouter un élément dans la base de faits du style ((B vrai) (C vrai))

(defun question (F *BF*)
(format NIL "Entrez la valeur de ~a:" F)
(let (result)
(setq result (read))
(if (or (equal result 'vrai) (equal result 'faux))
(push (list F result) *BF*)
)
)
)

Tout d'abord, j'ai remarqué que lorsqu'on utilisait la fonction push dans une fonction, la liste qui est censée être modifiée reste inchangée. Est ce normal ? On est obligé d'utiliser set et cons ?

Ensuite, la fonction format ne passe pas ... à l'execution rien ne saffiche mais le reste s'execute correctement et la je ne sais pas du tout pourquoi.

(let (result)
(setq result (read))
Est ce normal que je doive mettre ca au lieu de (let (result (read)) vu que ca ne passe pas?

Merci