2016-11-06 52 views
0

我正在試着製作一個名爲special-num的函數,它接受一個列表,然後對列表中的每個元素進行分割,然後除以2並四捨五入。Special-Num DrScheme

這是到目前爲止我的代碼:

(define empty? '()) 
(define (special-num lyst) 
    (cond((empty? lyst) lyst) 
     ;((empty? (cdr lyst)) (ceiling (/ (car lyst) 2))) 
     (else (list (ceiling (/ (special-num (car (cdr lyst))) 2)))))) 

回答

1

不要重新定義empty?,在第一行你說是低於你使用它作爲一個謂語空列表和兩行。另外,這不是我們構建輸出列表的方式,請使用cons。而你推進遞歸的方式是不正確的 - 最好試試這個:

(define (special-num lyst) 
    (cond ((empty? lyst) lyst) 
     (else (cons (ceiling (/ (car lyst) 2)) 
        (special-num (cdr lyst))))))