I have started to reading *Structure and Interpretation of Computer Programs* since last week. And I finished a few exercise of the first chapter. And this is one of them.

Exercise 1.3. Define a procedure that takes three numbers as arguments and returns the sum of the squares of the two larger numbers.

Following is my solution:

```
(define (min x y) (if (< x y) x y))
(define (min3 x y z) (min x (min y z)))
(define (square x) (* x x))
(define (sum_of_square x y)
(+ (square x) (square y)))
(define (sum_of_max_two_sqaure x y z)
(define min_num (min3 x y z))
(cond ((= min_num x) (sum_of_square y z))
((= min_num y) (sum_of_square x z))
(else sum_of_square x y)))
(sum_of_max_two_sqaure 1 2 3)
```

Comments powered by Disqus