2

現在、SICP の演習 1.29 に取り組んでいますが、プログラムで次のエラーが表示され続けます。

+: expects type <number> as 2nd argument, given: #<void>; other arguments were: 970299/500000

これが私が使用しているコードですracket:

  (define (cube x)
    (* x x x))

  (define (integral2 f a b n)
    (define (get-mult k)
      (cond ((= k 0) 1)
            ((even? k) 4)
            (else 2)))
    (define (h b a n)
      (/ (- b a) n))
    (define (y f a b h k)
      (f (+ a (* k (h b a n)))))
    (define (iter f a b n k)
      (cond ((> n k)
             (+ (* (get-mult k)
                   (y f a b h k))
                (iter f a b n (+ k 1))))))
    (iter f a b n 0))

(integral2 cube 0 1 100)

「2番目の引数」は、現在の反復と将来の反復を追加する場所を指していると思います。ただし、2 番目の引数が数値を返さない理由がわかりません。このエラーを修正する方法を知っている人はいますか?

4

2 に答える 2