$ scheme48 > ,load ex2-diff.scm > (diff 2 5 8) 6 > (diff 2 5 -8) 13 > (diff 2 2 8) 6 > ,exit $
$ scheme48 > ,load ex3-cube-root.scm > (cube-root 1331) 11.0 > (cube-root 512) 8.0 > ,exit $
$ scheme48 > ,load ex4-ite-rec.scm > (rec 4) 1 > (ite 4) 1 > (ite 1000) 1 > (rec 1000) ^C <------------------ take too much time, so abort interrupt: keyboard interrupt [command-level-event-handler] keyboard 1> ,exit $
$ cat ex5-comp-expt.scm (define (comp-fast-expt a b n) (define (iter a b c d n) (cond ((= n 0) (list a b)) <---- Use (list a b)! ....... $ $ scheme48 > ,load ex5-comp-expt.scm > (comp-fast-expt 0 1 100) (1 0) > (comp-fast-expt 0 1 10) (-1 0) > (comp-fast-expt 0 1 15) (0 -1) > (comp-fast-expt .70710678118654 .70710678118654 10000) (0.9999999998939737 0.0) > ,exit $
$ scheme48 > ,load ex6-fast-fib-m.scm > (fib-mod 1234567890 12119) 10091 > ,exit $
$ scheme48 > ,load ex7-cont-frac-sqrt.scm > (+ 1 (cont-frac (lambda (i) i) (lambda (i) i) 200)) 1.5819767068693262 > > (sqrt 100) 9.999999999999996 > (+ 1 (cont-frac (lambda (i) 99) (lambda (i) 2) 200)) 9.999999999999996 > > (sqrt 0.0001) 0.010365573432748798 > (- 1 (cont-frac (lambda (i) -0.9999) (lambda (i) -2) 200)) 0.010365573432748798 > ,exit $
$ scheme48 > ,load ex8-pair-int.scm > (define x (my-cons 2 -5)) ; no values returned > (my-car x) 2 > (my-cdr x) -5 > ,exit $
$ scheme48 > ,load ex9-second.scm > (second 1 2 9 43 32 -1) 1 > (second 1 2 9 32 32 0 99 33 4 4 4) 1 > (second 10 9 8 7 6 4 4 4 4 4) 4 > ,exit $
$ scheme48 > ,load ex10-iter-fringe.scm > (fringe '(4 (7 8) ((9) 11) 3)) (4 7 8 9 11 3) > ,exit $ The result for each iteration is shown below for explanation. Note the temporary result is stored reversed. So it has to be reversed before return. Note (reverse L) is provided by system. You do not need to write it again. (4 (7 8) ((9) 11) 3) () <-- '4' is not a pair, so move to result ((7 8) ((9) 11) 3) (4) <-- (7 8) is a pair, so transform and store (7 (8) ((9) 11) 3) (4) back to list ((8) ((9) 11) 3) (7 4) (8 () ((9) 11) 3) (7 4) (() ((9) 11) 3) (8 7 4) <-- () is discarded (((9) 11) 3) (8 7 4) ((9) (11) 3) (8 7 4) (9 () (11) 3) (8 7 4) (() (11) 3) (9 8 7 4) ((11) 3) (9 8 7 4) (11 () 3) (9 8 7 4) (() 3) (11 9 8 7 4) (3) (11 9 8 7 4) () (3 11 9 8 7 4) <-- reversed result
$ scheme48 > ,load ex11-enum-tuples.scm > (enum-tuples) () > (enum-tuples '(a b c)) ((a) (b) (c)) > > (enum-tuples '(10 19 21) '(klim oak)) ((10 klim) (19 klim) (21 klim) (10 oak) (19 oak) (21 oak)) > > (enum-tuples '(a b) '(x y z) '(osaka rei)) ((a x osaka) (b x osaka) (a y osaka) (b y osaka) (a z osaka) (b z osaka) (a x rei) (b x rei) (a y rei) (b y rei) (a z rei) (b z rei)) > ,exit $
$ scheme48 > ,load ex13-monitor.scm > > (define add (make-monitored +)) ; no values returned > (add 'how-many-calls) 0 > (add 2 4 5) 11 > (add 'how-many-calls) 1 > (define (accumulate op e L) (if (null? L) e (op (car L) (accumulate op e (cdr L))))) ; no values returned > > (accumulate + 0 '(1 2 3 4 5 6)) 21 > (accumulate add 0 '(1 2 3 4 5 6)) 21 > (add 'how-many-calls) 7 > ,exit $