1

サブリストにネストされていても、数値の合計をカウントするスキーム再帰関数 deep_count を作成しようとしています。

(define deep_count
  (lambda (xs)
    (cond 
      ((empty? xs) 0)
      ((list? (first xs)) (+ 
                           (deep_count (first xs)) 
                           (deep_count (rest xs))))
      (else (+ 1 (deep_count (rest xs)))))))

(deep_count '(1 2 3 (4 5 6) ((7 8 9) 10 (11 (12 13)))))

しかし、91 ではなく 13 になっています。何が問題なのですか?

編集:気にしないでください、私は理由を知っています。

4

1 に答える 1

2

最後に少しミスがあります。これを変える:

(+ 1 (deep_count (rest xs)))

... これで準備は完了です。

(+ (first xs) (deep_count (rest xs)))
于 2013-02-19T01:11:54.480 に答える