--- title: Reading SICP – 2 author: kazu634 date: 2008-11-30 url: /2008/11/30/reading-sicp-2/ wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4409;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - Lisp ---
Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)を読む、その2です。今回は
というようなことが書いてありました(私の理解が間違えていなければ…)。
Translate the following expression into prefix form
(/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7)))
Define a procedure that takes 3 numbers as arguments and returns the sum of the squares of the two larger numbers.
(define (sum-of-square a b c) (define (square n) (* n n)) (cond [(and (< a b) (< a c)) (+ (square b) (square c))] ; when a is the smallest [(and (< b a) (< b c)) (+ (square a) (square c))] ; when b is the smallest [(and (< c a) (< c b)) (+ (square a) (square b))])) ; when c is the smallest