Reasoned Schemer (25) わり算 続き
で本文を読みすすめてみる
- n < m、n = m、n > m の3つの場合に分けている
それならそういうことがわかりやすいように書くべきなんではないだろうか
素のSchemeで言えば
(cond ((< n m) ...)
((= n m) ...)
((> n m) ...))
って書いてあれば一目瞭然なんだから
- わり算のルールでは、m /= 0 で r < m
conde
の条件でガードしている
直接は書いてなくても、遠まわしにガードしてることにはなってる
で、
(<o r m)
はなんの役に立ってるの?
もコレか
これがないと 0 ÷ 0 = 0 あまり 0 っていうことになってしまう
でも意図が読みづらいコードになってるんじゃないかな
ひとまとめにして
m = 0 ならダメ、そうでなければほげほげ、とか
m /= 0 でかつほげほげ、とか書きたくならないのかなあ?
否定やelseが書きづらい(ぽい)から、そういう遠回しが出ちゃうってことはない?