2016-11-06 13 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

あなたはそれは空のリストとあなたが述語としてそれを使用している以下の2行です言っている最初の行で、empty?を再定義しないでください。また、これは出力リストを作成する方法ではなく、consを使用します。また、再帰を進める方法が間違っている - これを試してみることをお勧めします。

(define (special-num lyst) 
    (cond ((empty? lyst) lyst) 
     (else (cons (ceiling (/ (car lyst) 2)) 
        (special-num (cdr lyst)))))) 
関連する問題