반응형
연습문제1.1
> 10
10
> (+ 5 3 4)
12
> (/ 6 2)
3
> (+ (* 2 4)(- 4 6))
6
> (define a 3)
> (define b (+ a 1))
> (+ a b (* a b))
19
> (= a b)
false
> (if (and (> b a) (< b (* a b)))
b
a)
4
> (cond ((= a 4) 6)
((= b 4) (+ 6 7 a))
(else 25))
16
> (+ 2 (if (> b a) b a))
6
> (* (cond ((> a b) a)
((< a b) b)
(else -1))
(+ a 1))
16
연습문제1.2
(/ (+ 5 4 (- 2 ( - 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7)))
-0.246
연습문제1.3
(define (onethird a b c)
(+ (cond ((> a b) (square a))
(else (square b)))
(cond ((and (> a b) (> b c)) (square b))
((and (< a b) (> a c)) (square a))
(else (square c))
)
)
)
연습문제1.4
> (define (a-plus-abs-b a b)
((if (> b 0) + -) a b))
> (a-plus-abs-b 1 2)
3
> (a-plus-abs-b 1 -2)
3
>
연습문제1.5
인자 먼저 계산하는 실행기의 결과: 0
이유: if 구문에서 true가 되어, 바로 0이라는 결과를 반환하기 때문이다.
정의한 대로 계산하는 실행기의 결과: (무한 루프)
이유: (p) 함수의 정의를 찾기 위해 무한 루프를 돌고, 결국 결과를 반환하지 못한다.
연습문제1.6
cond는 잇단식(sequence of expression)을 계산하고 마지막 식의 값을 돌려주므로 무한 루프에 빠지는 반면, if는 참이 아닐 때만 alternative를 계산해서 제곱근을 구할 수 있다.
연습문제1.7
> (define (good-enough?1 guess x)
(< (abs (- (improve guess x) guess)) 0.001))
> (define (sqrt-iter2 guess x)
(if (good-enough?1 guess x)
guess
(sqrt-iter2 (improve guess x)
x)))
> (define (sqrt3 x)
(sqrt-iter2 1.0 x))
0을 넣었을 때 전보다 오차가 적었다.
> 10
10
> (+ 5 3 4)
12
> (/ 6 2)
3
> (+ (* 2 4)(- 4 6))
6
> (define a 3)
> (define b (+ a 1))
> (+ a b (* a b))
19
> (= a b)
false
> (if (and (> b a) (< b (* a b)))
b
a)
4
> (cond ((= a 4) 6)
((= b 4) (+ 6 7 a))
(else 25))
16
> (+ 2 (if (> b a) b a))
6
> (* (cond ((> a b) a)
((< a b) b)
(else -1))
(+ a 1))
16
연습문제1.2
(/ (+ 5 4 (- 2 ( - 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7)))
-0.246
연습문제1.3
(define (onethird a b c)
(+ (cond ((> a b) (square a))
(else (square b)))
(cond ((and (> a b) (> b c)) (square b))
((and (< a b) (> a c)) (square a))
(else (square c))
)
)
)
연습문제1.4
> (define (a-plus-abs-b a b)
((if (> b 0) + -) a b))
> (a-plus-abs-b 1 2)
3
> (a-plus-abs-b 1 -2)
3
>
연습문제1.5
인자 먼저 계산하는 실행기의 결과: 0
이유: if 구문에서 true가 되어, 바로 0이라는 결과를 반환하기 때문이다.
정의한 대로 계산하는 실행기의 결과: (무한 루프)
이유: (p) 함수의 정의를 찾기 위해 무한 루프를 돌고, 결국 결과를 반환하지 못한다.
연습문제1.6
cond는 잇단식(sequence of expression)을 계산하고 마지막 식의 값을 돌려주므로 무한 루프에 빠지는 반면, if는 참이 아닐 때만 alternative를 계산해서 제곱근을 구할 수 있다.
연습문제1.7
> (define (good-enough?1 guess x)
(< (abs (- (improve guess x) guess)) 0.001))
> (define (sqrt-iter2 guess x)
(if (good-enough?1 guess x)
guess
(sqrt-iter2 (improve guess x)
x)))
> (define (sqrt3 x)
(sqrt-iter2 1.0 x))
0을 넣었을 때 전보다 오차가 적었다.
반응형