除算(※)も減算で再帰的に定義出来ます。
※正の整数に閉じた
いちおー、0で除算されたときのガードを入れますか。。。
でないと、無限に再帰しちゃうし...。
正の整数に閉じた関数定義なので、
例外として、返す値としては負の整数(-1)を返すよう定義。
減算による除算の再帰的定義
divine::Int -> Int -> Int
divine m n
| n == 0 = -1
| m < n = 0
| otherwise = 1 + divine (m - n) n