아래에 여러 식이 있다. 실행기가 찍어내는 값은 무엇인가?
아래에 적힌 식의 값을 차례대로 구한다고 하자.
;;EXERCISE 1.1
;: 10
;: (+ 5 3 4)
;;; 12
;: (- 9 1)
;;; -8
;: (/ 6 2)
;;; 3
;: (+ (* 2 4) (- 4 6))
;;; 16
;: (define a 3)
;;; 변수 a에 값 3 할당
;: (define b (+ a 1))
;;; 변수 b에 4 할당
;: (+ a b (* a b))
;;; 19
;: (= a b)
;;; false
;: (if (and (> b a) (< b (* a b)))
;: b
;: a)
;;; (if (and (> 4 3) (< 4 ( * 3 4))) b a)
;;; =(if (and (true) (< 4 (12)) b a)
;;; =(if (and (true) (true)) b a)
;;; =(if (true) b a)
;;; =b
;;; =4
;: (cond ((= a 4) 6)
;: ((= b 4) (+ 6 7 a))
;: (else 25))
;;; (cond ((false) 6)
;;; ((true) (+ 6 7 3))
;;; (else 25))
;;; = 16
;: (+ 2 (if (> b a) b a))
;;; (+ 2 (if (> 4 3) 4 3))
;;; = (+ 2 (if (true) 4 3))
;;; = (+ 2 4)
;;; = 6
;: (* (cond ((> a b) a)
;: ((< a b) b)
;: (else -1))
;: (+ a 1))
;;; (* (cond ((> 3 4) 3)
;;; ((< 3 4) 4)
;;; (else -1))
;;; (+ 3 1))
;;; =(* (cond ((false) 3)
;;; ((true) 4)
;;; (else -1))
;;; (4))
;;; =4*4
;;; =16