2017-05-19 1 views
-1

Je suis en train d'apprendre LISP. J'ai fait le tour des fonctions et j'ai voulu me tester avec quelques unes.LISP Comment supprimer l'élément à certains index à partir d'une liste

je tentais d'écrire une fonction qui peut supprimer un élément d'une liste dans un indice donné.

Cela semble assez simple, mais je ne parviens pas à le faire.

Exemple: J'ai la liste (20 8 13 10) et je veux supprimer le numéro à l'index 2.

Comment dois-je quelque chose comme ça?

+0

De l'aide de Stackoverflow: * Les questions demandant de l'aide pour les devoirs doivent inclure un résumé du travail que vous avez fait jusqu'ici pour résoudre le problème, et une description de la difficulté que vous avez à le résoudre. * –

Répondre

1

Il est très facile. Tel est le cas de base:

(remove-nth 0 '(2 3)) ; => (3) 

Et le cas par défaut:

(remove-nth 1 '(1 2 3))   ; == 
(cons 1 (remove-nth 0 '(2 3))) 

La seule chose qu'il vous reste à faire est de mettre en œuvre réellement!

Il y a un troisième cas. Que faire si la liste est nil? Dans le sens strict, vous ne pouvez pas faire le travail et vous devriez signaler une erreur ou peut-être qu'il n'y a rien à faire alors il est possible de l'utiliser comme un cas de base qui évalue à '() de sorte que

+0

Merci, je me suis débrouillé tout seul. Mais ta réponse est géniale – Kobek