S'il vous plaît gardez avec moi comme je suis encore assez nouveau à lisp. Le but de ma fonction (appelée dans ce cas test) est de placer toutes les valeurs dans une liste et de renvoyer une nouvelle liste.Lisp: Quadrature toutes les valeurs dans une liste
Par exemple, la liste d'origine (1 2 3)
. La nouvelle liste devrait être (1 4 9)
Ceci est actuellement ce que j'ai jusqu'à présent,
(defun test (n)
(cond ((null n) nil)
(t (cons * (car n) (car n))
(test (cdr n)))))
Cependant, je continue à obtenir une erreur et je suis tout à fait incertain quant à la façon de procéder. Toute aide serait grandement appréciée!
Cela se fait avec '(mapcar (lambda (x) (* xx)) votre liste), ou' (mapcar # '* yourlist yourlist) '. La chose la plus importante dans la programmation Lisp est de tirer parti du langage existant et de sa bibliothèque, et des idiomes comme utiliser des fonctions d'ordre supérieur avec des applicateurs tels que 'mapcar'. – Kaz