All pastes #707868 Raw Edit

Simple trace

public text v1 · immutable
#707868 ·published 2007-09-23 11:19 UTC
rendered paste body
(require (lib "trace.ss"))

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

(define (sum term a next b)
  (if (> a b)
      0
      (+ (term a)
         (sum term (next a) next b))))

(define (inc1 n) (+ n 1))
(define (inc2 n) (+ n 2))

(define (simpson f a b n)
  (let* ((h (/ (- b a) n))
         (term (lambda(k) (f (+ a (* k h))))))
    (* (/ h 3.0)
       (+ (sum term 0 inc1 n)
          (sum term 1 inc1 (- n 1))
          (* 2.0 (sum term 1 inc2 (- n 1)))))))

(trace sum)

(simpson cube 0.0 1.0 10)


|(sum #<procedure:term> 0 #<procedure:inc1> 10)
| (sum #<procedure:term> 1 #<procedure:inc1> 10)
| |(sum #<procedure:term> 2 #<procedure:inc1> 10)
| | (sum #<procedure:term> 3 #<procedure:inc1> 10)
| | |(sum #<procedure:term> 4 #<procedure:inc1> 10)
| | | (sum #<procedure:term> 5 #<procedure:inc1> 10)
| | | |(sum #<procedure:term> 6 #<procedure:inc1> 10)
| | | | (sum #<procedure:term> 7 #<procedure:inc1> 10)
| | | | |(sum #<procedure:term> 8 #<procedure:inc1> 10)
| | | | | (sum #<procedure:term> 9 #<procedure:inc1> 10)
| | | |[10](sum #<procedure:term> 10 #<procedure:inc1> 10)
| | | |[11](sum #<procedure:term> 11 #<procedure:inc1> 10)
| | | |[11]0
| | | |[10]1.0
| | | | | 1.729
| | | | |2.241
| | | | 2.584
| | | |2.8000000000000003
| | | 2.9250000000000003
| | |2.9890000000000003
| | 3.0160000000000005
| |3.0240000000000005
| 3.0250000000000004
|3.0250000000000004
|(sum #<procedure:term> 1 #<procedure:inc1> 9)
| (sum #<procedure:term> 2 #<procedure:inc1> 9)
| |(sum #<procedure:term> 3 #<procedure:inc1> 9)
| | (sum #<procedure:term> 4 #<procedure:inc1> 9)
| | |(sum #<procedure:term> 5 #<procedure:inc1> 9)
| | | (sum #<procedure:term> 6 #<procedure:inc1> 9)
| | | |(sum #<procedure:term> 7 #<procedure:inc1> 9)
| | | | (sum #<procedure:term> 8 #<procedure:inc1> 9)
| | | | |(sum #<procedure:term> 9 #<procedure:inc1> 9)
| | | | | (sum #<procedure:term> 10 #<procedure:inc1> 9)
| | | | | 0
| | | | |0.7290000000000001
| | | | 1.241
| | | |1.584
| | | 1.8000000000000003
| | |1.9250000000000003
| | 1.9890000000000003
| |2.0160000000000005
| 2.0240000000000005
|2.0250000000000004
|(sum #<procedure:term> 1 #<procedure:inc2> 9)
| (sum #<procedure:term> 3 #<procedure:inc2> 9)
| |(sum #<procedure:term> 5 #<procedure:inc2> 9)
| | (sum #<procedure:term> 7 #<procedure:inc2> 9)
| | |(sum #<procedure:term> 9 #<procedure:inc2> 9)
| | | (sum #<procedure:term> 11 #<procedure:inc2> 9)
| | | 0
| | |0.7290000000000001
| | 1.072
| |1.197
| 1.224
|1.2249999999999999
0.25