(define (ampex* ampex-1 ampex-2) (lambda (x) (* (ampex-1 x) (ampex-2 x))))
(define (sum func start stop) (let loop ((result 0) (index start)) (if (<= stop index) result (loop (+ (func index) result) (+ index 1))))) (define (trapezoid f a b . opt) (let* ((pieces (if (null? opt) 64 (car opt))) (base (/ (- b a) pieces))) (/ (* (- b a) (+ (f a) (sum (lambda (n) (* 2 (f (+ a (* base n))))) 1 pieces) (f b))) (* 2 pieces))))
(define (list-set! ls n obj) (if (zero? n) (set-car! ls obj) (list-set! (cdr ls) (- n 1) obj)))
This document is available on the World Wide Web as
http://www.math.grin.edu/~stone/events/scheme-workshop/Thursday-answers.html