Add solutions to exercises from section 1.1
This commit is contained in:
commit
8b37951b28
28
ex-1.01.txt
Normal file
28
ex-1.01.txt
Normal file
|
@ -0,0 +1,28 @@
|
|||
10 -> 10
|
||||
(+ 5 3 4) -> 12
|
||||
(- 9 1) -> 8
|
||||
(/ 6 2) -> 3
|
||||
(+ (* 2 4) (- 4 6)) -> 6
|
||||
(define a 3) -> a (3)
|
||||
(define b (+ a 1)) -> b (4)
|
||||
(+ a b (* a b)) -> 19
|
||||
(= a b) -> #f
|
||||
|
||||
(if (and (> b a) (< b (* a b)))
|
||||
b
|
||||
a)
|
||||
-> 4
|
||||
|
||||
(cond ((= a 4) 6)
|
||||
((= b 4) (+ 6 7 a))
|
||||
(else 25))
|
||||
-> (+ 6 7 a) -> 16
|
||||
|
||||
(+ 2 (if (> b a) b a))
|
||||
-> 6
|
||||
|
||||
(* (cond ((> a b) a)
|
||||
((< a b) b)
|
||||
(else -1))
|
||||
(+ a 1))
|
||||
-> 16
|
6
ex-1.02.scm
Normal file
6
ex-1.02.scm
Normal file
|
@ -0,0 +1,6 @@
|
|||
(/ (+ 5
|
||||
4
|
||||
(- 2 (- 3 (+ 6 (/ 4 5)))))
|
||||
(* 3
|
||||
(- 6 2)
|
||||
(- 2 7)))
|
9
ex-1.03.scm
Normal file
9
ex-1.03.scm
Normal file
|
@ -0,0 +1,9 @@
|
|||
#| BEGIN (Write your solution here) |#
|
||||
(define (sqr x) (* x x))
|
||||
(define (solution a b c)
|
||||
(cond ((and (<= a b) (<= a c))
|
||||
(+ (sqr b) (sqr c)))
|
||||
((and (<= b a) (<= b c))
|
||||
(+ (sqr a) (sqr c)))
|
||||
(else (+ (sqr a) (sqr b)))))
|
||||
#| END |#
|
2
ex-1.04.txt
Normal file
2
ex-1.04.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
The if statement will select the appropriate function to execute, if b>0, it
|
||||
will add b, otherwise it will subtract it.
|
4
ex-1.05.txt
Normal file
4
ex-1.05.txt
Normal file
|
@ -0,0 +1,4 @@
|
|||
If the interpreter uses normal-order evaluation, it will expand test into an
|
||||
"if", which will then evaluate to 0, if it uses applicative-order evaluation,
|
||||
it will first evaluate 0 and (p), while trying to evaluate (p), it will enter
|
||||
an infinite loop.
|
3
ex-1.06.txt
Normal file
3
ex-1.06.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
The program will run into an infinite loop, because in every execution of
|
||||
square-iter, the improve function is called again, since this is an
|
||||
applicative-ordered language
|
18
ex-1.07.scm
Normal file
18
ex-1.07.scm
Normal file
|
@ -0,0 +1,18 @@
|
|||
#| BEGIN (Write your solution here) |#
|
||||
(define (average a b)
|
||||
(/ (+ a b) 2))
|
||||
|
||||
(define (improve guess x)
|
||||
(average guess (/ x guess)))
|
||||
|
||||
(define (good-enough? guess x)
|
||||
(< (abs (- (improve guess x) guess)) 0.0001))
|
||||
(define (sqrt-iter guess x)
|
||||
(if (good-enough? guess x)
|
||||
guess
|
||||
(sqrt-iter (improve guess x)
|
||||
x)))
|
||||
|
||||
(define (square-root x)
|
||||
(sqrt-iter 1.0 x))
|
||||
#| END |#
|
18
ex-1.08.scm
Normal file
18
ex-1.08.scm
Normal file
|
@ -0,0 +1,18 @@
|
|||
#| BEGIN (Write your solution here) |#
|
||||
(define (improve guess x)
|
||||
(/ (+ (/ x guess guess)
|
||||
(* 2 guess))
|
||||
3))
|
||||
|
||||
(define (good-enough? guess x)
|
||||
(< (abs (- (improve guess x) guess)) 0.0001))
|
||||
|
||||
(define (cbrt-iter guess x)
|
||||
(if (good-enough? guess x)
|
||||
guess
|
||||
(cbrt-iter (improve guess x)
|
||||
x)))
|
||||
|
||||
(define (cube-root x)
|
||||
(cbrt-iter 1.0 x))
|
||||
#| END |#
|
Loading…
Reference in a new issue