| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
TFwH.Chap03.ExG
Description
第3章 練習問題 G
- Nat を型クラスOrd のインスタンスとして定義せよ.そのうえで,以下のdivMod の定義を構成せよ.
divMod :: Nat -> Nat -> (Nat, Nat)
instance Ord Nat where
Zero <= Zero = True
Zero <= Succ n = True
Succ m <= Zero = False
Succ m <= Succ n = m <= n
divMod :: Nat -> Nat -> (Nat, Nat)
divMod x y = if x < y then (Zero, x)
else (Succ q, r)
where
(q, r) = divMod (x - y) y