Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
第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