Hatena::Groupsicp

kdmsnrの日記 - 初心者なので最初から淡々と読むよ このページをアンテナに追加 RSSフィード

 | 

2008-01-10

Exercise 1.3.

11:32 |  Exercise 1.3. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ を含むブックマーク はてなブックマーク -  Exercise 1.3. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ  Exercise 1.3. - kdmsnrの日記 - 初心者なので最初から淡々と読むよ のブックマークコメント

とりあえず関数作るよねえ

(define (f x y z)

  )

前者2つが最大とすると

(define (f x y z)
  (if (and (> x z) (> y z))
      ()
      ()
      )
  )

二乗した和を出せばよくて

(define (f x y z)
  (if (and (> x z) (> y z))
      (+ (* x x) (* y y))
      ()
      )
  )

それ以外は後者1つを一番前に持ってきて再処理

(define (f x y z)
  (if (and (> x z) (> y z))
      (+ (* x x) (* y y))
      (f z x y)
      )
  )

確認

(f 1 2 3) ; => 13
(f 3 2 1) ; => 13
(f 1 3 2) ; => 13
(f 3 1 2) ; => 13

それっぽいね?

 |