2012-11-07 57 views
0

這是我的函數:想不出如何刪除列表中的數位 - 計劃

(define (remove-digit digit list) 
    (cond ((null? list ...)) 
    ((= (car list) digit) (remove-digit digit (cdr list))) 
     (else (cons (car list) (if (null? list) (cons(remove-digit digit (cdr list))))))is: 

,它應該這樣做:後(remove-

(1 2 4 5 2 5 6)數字2列表)應該是(1 4 5 5 6)

但我不能認爲當列表變爲空時該怎麼辦。

您能否給我一點幫助或某種想法?非常感謝你!

回答

1

返回一個空列表(或list本身)。這是您的功能的基本情況。

(define (remove-digit digit list) 
    (cond ((null? list) list) 
     ((= digit (car list)) (remove-digit digit (cdr list))) 
     (else (cons (car list) (remove-digit digit (cdr list)))))) 

爲了推導出基本情況,容易想到以空列表作爲參數的「最小」情況remove-digit

(remove-digit digit '()) 

它應該返回'()顯然對於任何digit值一個用品。

+0

非常感謝! :) – Faery