(if ホゲ ああしよう こうしよう)
(if (<= 25 BMIの値) 'FAT 'FATではない)
gosh> (if (<= 25 30) 'FAT 'FATではない)
FAT
gosh> (if (<= 25 20) 'FAT 'FATではない)
FATではない
(calc-bmi 80 2)
20
cal-bmiを使ってifで判定するには
(if (<= 25 (calc-bmi 80 2)) 'FAT 'FATではない)
(define hogehoge (lambda (w t)
(if (<= 25 (calc-bmi w t)) 'FAT 'FATではない))))
上では手続き名は hogehoge だけど、皆さんはbmiを判定するんだということがわかるような名前にしないと
再提出にするよ
BMIの値による評価は以下の表に従うとする
評価 | BMIの値 |
slim | 18.5未満 |
standard | 18.5以上、25未満 |
fat1 | 25以上、30未満 |
fat2 | 30以上、35未満 |
fat3 | 35以上、40未満 |
fat4 | 40以上 |
もし 18.5 未満なら slim そうでなく もし 25未満なら standard そうでなく もし 30未満なら fat1 そうでなく もし35未満なら fat2 そうでなく もし 40未満なら fat3 そうでないなら fat4
(if (< x 18.5) 'slim
(if (< x 25) 'standard
(if (< x 30) 'fat1
(if (< x 35) 'fat2
(if (< x 40) 'fat3 'fat4)))))
(if (< x 18.5) 'slim
(if (< x 25) 'standard
(if (< x 30) 'fat1
(if (< x 35) 'fat2
(if (< x 40) 'fat3 'fat4)))))
条件がだんだん右に移動
(cond ((< x 18.5) 'slim )
((< x 25) 'standard)
((< x 30) 'fat1)
((< x 35) 'fat2)
((< x 40) 'fat3)
(else 'fat4))
条件が揃って分りやすい
(cond ( 条件1 式 ... 式1) ( 条件2 式 ... 式2) .... ( else 式 ... 式n) )
条件1 を評価して #f でなければ 式 ... 式1 を順に評価して 式1の値を返す 条件1 #fだったら 条件2 を評価して #f でなければ 式 ... 式2 を順に評価して 式2の値を返す 条件2 #fだったら 同様に条件は幾つでも書くことができる 条件すべてを評価して #f だったら else の後の 式 ... 式n を順に評価して 式nの値を返す