Code Review

Compare your solutions

    #| BEGIN (Write your solution here) |#
(define (simpson f a b n)
  (define h (/ (- b a) n))
  (define (coeff k)
    (cond ((= k 0) 1)
          ((= k n) 1)
          ((even? k) 2)
          (else 4)))
  (define (iter f a b k sum)
    (if (<= k n)
        (iter f
              a
              b
              (+ k 1)
              (+ sum
                 (*
                  (coeff k)
                  (f (+ a (* k h))))))
        sum))
  (* (/ h 3) (iter f a b 0 0)))
#| END |#
    (define (simpson f a b n)
  (define h (/ (- b a) n))
  (define (coeff k)
    (cond ((= k 0) 1)
          ((= k n) 1)
          ((even? k) 2)
          (else 4)))
  (define (iter f a b k sum)
    (if (<= k n)
        (iter f
              a
              b
              (+ k 1)
              (+ sum
                 (*
                  (coeff k)
                  (f (+ a (* k h))))))
        sum))
  (if (not (even? n))
      (error "n should be even")
      (* (/ h 3) (iter f a b 0 0.0))))
#| END |#
    #| BEGIN (Write your solution here) |#
(define (simpson f a b n)
  (define h (/ (- b a) n))
  (define (coeff k)
    (cond ((= k 0) 1)
          ((= k n) 1)
          ((even? k) 2)
          (else 4)))
  (define (iter f a b k sum)
    (if (<= k n)
        (iter f
              a
              b
              (+ k 1)
              (+ sum
                 (*
                  (coeff k)
                  (f (+ a (* k h))))))
        sum))
  (* (/ h 3) (iter f a b 0 0)))
#| END |#
    (define (simpson f a b n)
  (define h (/ (- b a) n))
  (define (coeff k)
    (cond ((= k 0) 1)
          ((= k n) 1)
          ((even? k) 2)
          (else 4)))
  (define (iter f a b k sum)
    (if (<= k n)
        (iter f
              a
              b
              (+ k 1)
              (+ sum
                 (*
                  (coeff k)
                  (f (+ a (* k h))))))
        sum))
  (if (not (even? n))
      (error "n should be even")
      (* (/ h 3) (iter f a b 0 0.0))))
#| END |#