$ cat ex1.scm ..... (define (square-sum-of-larger-two x y z) ..... $ scheme48 Type ,? (comma question-mark) for help. > ,load ex1.scm > (square-sum-of-larger-two 1 2 3) 13 > (square-sum-of-larger-two 3 2 1) 13 > (square-sum-of-larger-two 2 3 1) 13 > (square-sum-of-larger-two 1 1 1) 2 > (square-sum-of-larger-two 1 1 3) 10 > (square-sum-of-larger-two 3 1 3) 18 > (square-sum-of-larger-two 3 1 -3) 10 > ,exit $
f(n) = n if n < 3 = f(n-1)-f(n-2)+2*f(n-3) otherwise
(fast 2 * n 1) ==> 2^n (fast 2 + n 0) ==> 2*n (define (fast a op n unit) (define (square x) ...)) (define (iter a n result) (cond ((= n 0) ...) ((even? n) (iter (square a) ... ...)) (else (iter ... ... ...))))) (iter a n unit))
(define (iterative-improve ok? do) (define (iim guess) (if (ok? guess) guess (iim (do guess)))) iim)
$ scheme48 > ,load ex9-accu-list.scm > (accumulate-list + 0 1 2 3 4 5 6 7) 28 > (accumulate-list * 1 2 3 4 5 6) 720 > (accumulate-list * 1) 1 > ,exit $
$ scheme48 > ,load ex10-iter-count-leaves.scm > (count-leaves '(1 2 3 4 5)) 5 > (count-leaves '(1 2 (((3))) 4 (5 6))) 6 > (count-leaves '((1 2) 3 (((((5))))))) 4 > ,exit $
$ scheme48 > ,load ex11-enum-tuples.scm > (enum-tuples '(1 2) '(3 4)) '((1 3) (2 3) (1 4) (2 4)) > (enum-tuples '(1 2) '(1 2) '(4 5)) '((1 1 4) (2 1 4) (1 2 4) (2 2 4) (1 1 5) (2 1 5) (1 2 5) (2 2 5)) > (enum-tuples '(1 2) '(a b) '(x y)) '((1 a x) (2 a x) (1 b x) (2 b x) (1 a y) (2 a y) (1 b y) (2 b y)) > ,exit $
$ scheme48 > ,load ex13-stream.scm > (define x (stream-enum-leaves '((1 2) (a (b)) (p (q (r)))))) ; no values returned > x '(1 . #{Procedure 1168 (unnamed in make-promise in scheme-level-1)}) > (stream-car x) 1 > (stream-ref x 2) 'a > (display-stream x) 1 2 a b p q r'done > ,exit $ $ cat ex13-stream.scm (define-syntax cons-stream (syntax-rules () ((cons-stream a b) (cons a (delay b))))) (define (stream-car s) (car s)) (define (stream-cdr s) (force (cdr s))) (define the-empty-stream 'empty-stream) (define (stream-null? s) (eq? s the-empty-stream)) (define (stream-ref s n) ..... (define (stream-enumerate-interval low high) .... (define (stream-for-each proc s) .... (define (display-stream s) ..... (define (stream-filter pred stream) .... (define (stream-enum-leaves T) ...... $