J'écris une fonction supposée prendre deux valeurs. La première valeur est censée créer une liste de cinq nombres, en fonction de la valeur entrée. La deuxième valeur est supposée prendre la liste et la faire tourner n
fois, en fonction du nombre entré.La virgule est illégale en dehors des backquotes?
Exemple d'interaction de programme.
> (my_rotate_n 1,2)
> (3 4 5 1 2)
C'est la fonction que j'ai actuellement.
(defun my_rotate_n (y) (x)
(append (loop for i from (+ 1 y) to (+ 4 y) collect i)
(> x 0) (my_rotate_n (rotate-right y)(- x 1)))(list y))
Lorsque je teste la fonction pour une sortie que je reçois l'erreur: comma is illegal outside of backquotes
Toute suggestion?
Vous ne pouvez pas utiliser des virgules pour séparer les arguments. Utilisez un espace. En regardant cette fonction, vous ne semblez pas très familier avec la syntaxe Lisp. Vous devriez lire un livre de Lisp (essayez le [Practical Common Lisp] (http://www.gigamonkeys.com/book/) par exemple). – jkiiski