2008年8月29日金曜日

計算機プログラムの構造と解釈 1.1.6 問題1


このエントリーをはてなブックマークに追加



問題1.2


次の式を前置記法に翻訳せよ。
¥frac{5+4+(2-(3-(6+¥frac{4}{5})))}{3(6-2)(2-7)}

木を作って、なぞっていきました。
1 + + 54-2-3+6¥frac{4}{5}*3-62-27


問題1.3


3つの数を引数としてとり、大きい2つの数の2乗の和を返す手続きを定義せよ。



(define (squares x) (* x x))
(define (sum-of-squares x y)
(+ (squares x) (squares y)))

(define (square-two-large-numbers a b c)
(cond ((> a b)
(if(> c b) (sum-of-squares a c) (sum-of-squares a b)))
((< a b)
(if(> c a) (sum-of-squares b c) (sum-of-squares b a)))))



これで動いたんですが、手続きの名前を決めるのが苦手で仕方ないっ!
限られた英単語で意味が通じるようにしないといけないから…
square-two-large-numbersはここから拝借しました。





0 件のコメント:

コメントを投稿