2017-11-01 9 views
0

내가 색인 난에서 시작 목록에서 요소의 n 개의 번호를 삭제하는 절차를 만들려고하고있는 목록에서 요소 n 개의 제거 :지금까지 내가 가지고 무엇을, 라켓

(define (remove L i n) 
(cond ((null? L) 
     '()) 
     ((and (= i 0) (= n 0)) 
     L) 
     (else (cons (car L) (remove (cdr L) (- i 1) (+ n 1)))) 

나는 거기에 조건을 놓치고 있을지 모르지만 나는 혼란에 빠지다.

답변

0
당신은 확인해야

는/별도 일

(define (remove L i n) 
    (cond ((null? L) 
     empty) 
     ((> i 0) 
     (cons (car L) (remove (cdr L) (sub1 i) n))) 
     ((> n 0) 
     (remove (cdr L) i (sub1 n))) 
     (else 
     L))) 

(remove '(0 1 2 3 4 5 6) 3 2) 
;; => '(0 1 2 5 6) 

(remove '(0 1 2 3 4 5 6) 5 100) 
;; => '(0 1 2 3 4) 

(remove '(0 1 2 3 4 5 6) 100 200) 
;; => '(0 1 2 3 4 5 6) 

(remove '() 0 10) 
;; => '() 
+0

in을 감소 !!!!! 고맙습니다. –

+0

이게 어떤 수업인지 알려주세요. – naomik

+0

@ ScrappyMontana,이 답변을 수락 된 것으로 표시해주세요. 감사! –