(define generate-sequence-processor (lambda (f g base-value next) (lambda (low high) (if (> low high) base-value (g (f low) ((generate-sequence-processor f g base-value next) (next low) high)))))) (define harm (lambda (n) ((generate-sequence-processor (lambda (i) (/ 1 i)) + 0 (lambda (i) (+ i 1))) 1 n))) (define sum-from-to (generate-sequence-processor (lambda (i) i) + 0 (lambda (i) (+ i 1)))) (define sum-odd-integers-from-to (generate-sequence-processor (lambda (i) (if (odd? i) i (+ 1 i))) + 0 (lambda (i) (+ i 2)))) (define sum-even-integers-from-to (generate-sequence-processor (lambda (i) (if (even? i) i (+ 1 i))) + 0 (lambda (i) (+ i 2)))) (define factorial (lambda (n) ((generate-sequence-processor (lambda (i) i) * 1 (lambda (i) (+ i 1))) 1 n))) (define double-factorial (lambda (n) ((generate-sequence-processor (lambda (i) i) * 1 (lambda (i) (+ i 2))) (if (even? n) 2 1) n)))