2017-05-19 8 views
-1

LISP를 배우려고합니다. 나는 주변에 기능을 가지고 있고 어떤 사람들과 함께 나 자신을 시험하고 싶었다.LISP 목록에서 특정 색인의 요소를 제거하는 방법

주어진 색인의 목록에서 요소를 제거 할 수있는 함수를 작성하려고했습니다.

이것은 매우 단순 해 보이지만 그렇게 할 수는 없습니다.

예 : I 목록 (20 8 13 10)이 있고 내가 이런 일에 대해 갈 것이라고 어떻게

인덱스 2에서 번호를 제거하려면?

+0

Stackoverflow 도움말 : * 숙제 도움을 요청하는 질문에는 문제를 해결하기 위해 지금까지 해 온 작업의 요약과 문제 해결에 대한 설명이 포함되어야합니다. * –

답변

1

매우 쉽습니다.

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

그리고 기본 케이스 : 당신이해야 할 떠났다

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

유일한 것은 실제로 그것을 구현하는 것입니다 이것은 기본 케이스입니다!

세 번째 사례가 있습니다. 목록이 nil 일 경우 어떻게 될까요? 가장 엄격한 의미에서 작업을 수행 할 수 없으며 오류가 발생했거나해야 할 일이 없으므로 '()으로 평가되는 기본 사례로 사용하면 좋습니다. (remove-nth 5 '(1 2)) ; ==> (1 2)

+0

고마워, 결국 혼자서 알아 냈습니다. 하지만 당신의 대답은 훌륭합니다. – Kobek