Talk:Structure and Interpretation of Computer Programs
Appearance
Discussion of exercises from Structure and Interpretation of Computer Programs assumes the use of the MIT Scheme interpreter.
Exercise 1.1
10 ;Value 10
(+ 5 3 4) ;Value 12
(- 9 1) ;Value 8
(/ 6 2) ;Value 3
(+ (* 2 4) (- 4 6)) ;Value 6
(define a 3) ;Value "a --> 3"
(define b (+ a 1)) ;Value "b --> 4"
(+ a b (* a b)) ;Value 19
(= a b) ;Value #f
(if (and (> b a) (< b (* a b))) b a) ;Value 4
(cond ((= a 4) 6) ((= b 4) (+ 6 7 a)) (else 25)) ;Value 16
(+ 2 (if (> b a) b a)) ;Value 6
(* (cond ((> a b) a) ((< a b) b) (else -1)) (+ a 1)) ;Value 16
Exercise 1.2
(/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 3))))) (* 3 (- 6 2) (- 2 7)))
Exercise 1.3
(define (sum-larger-squares a b c) (cond ((and (<= a b) (<= a c)) (+ (* b b) (* c c))) ((and (<= b a) (<= b c)) (+ (* a a) (* c c))) (else (+ (* a a) (* b b)))))
Exercise 1.4
Determine the operation based on the value of b
. When b
is greater than zero, add b
to a
. Otherwise, subtract b
from a
.
Exercise 1.5
Normal order:
(test 0 (p)) ; substitute the definition of test (if (= 0 0) 0 (p)) ; if forces the first argument to be evaluated (if #t 0 (p)) ; because the first argument is #t, the second argument ; is evaluated and the third argument is ignored ;Value 0
Applicative order:
(test 0 (p)) ; substitute the definition of test and the arguments ; (p) is defined as (p), so the interpreter enters an ; infinite loop
Exercise 1.6
Because new-if
is a user defined function and user defined functions evaluate arguments in applicative order, the call to sqrt-iter will cause infinite recursion.
Exercise 1.7
Exercise 1.8
Influenced
What's this book's relation to the Little Schemer? --maru (talk) contribs 01:31, 14 March 2006 (UTC)