課題6

次のように定義されたデータ型 Nat(自然数)において、 商と余りを求める関数divideと 累乗を計算する関数exptを定義しなさい。

Natの定義

data Nat = Zero | Succ Nat

divide, exptの型

divide :: Nat -> Nat -> (Nat, Nat)
expt :: Nat -> Nat -> Nat

divideの意味

(s, t) = divide n m
とすると、snmで割ったときの商、 tnmで割ったときの余りである。つまり、
n = m × s + t
が成立する。

exptの意味

k = expt n m
とすると、knm乗した値である。つまり、
k = nm
である。

おわり