1

明日試験があるのですが、これは私が間違えた宿題の問題でした。私はしばらくこれで立ち往生しています、誰かが解決策を教えてもらえますか?

問題は、このコードをどのように修正するかです。

(define (buggy-sum lst)
  (+ (car lst) (buggy-sum (cdr lst))))

(buggy-sum (list 1 2 3 4))

私の解決策は次のとおりでしたが、間違っています:

(define (buggy-sum lst)
  (cond [(null? lst) '()]
        [else (+ (car lst) (buggy-sum (cdr lst)))]))

(buggy-sum (list 1 2 3 4))

誰かが正しい解決策を教えてもらえますか?

4

1 に答える 1

5

あなたのエッジケースは間違っています。リストがnullの場合、別のnullリストを返しているので、intを返す必要があります。[(null? lst) '()]に置き換えるだけ[(null? lst) 0]です。

于 2013-04-21T17:33:41.790 に答える