web-dev-qa-db-ja.com

IntをIntに除算してIntを返す

2つのInts(ab)を取得し、A/BIntとして返す関数が必要です。 A/Bは常に整数であると確信しています。

私の解決策は次のとおりです。

myDiv :: Int -> Int -> Int
myDiv a b = 
      let x = fromIntegral a
          y = fromIntegral b
      in truncate (x / y)

しかし、よりシンプルなソリューションを見つけたいです。このようなもの:

myDiv :: Int -> Int -> Int
myDiv a b = a / b

IntをIntに分割してIntを取得するにはどうすればよいですか?

75
demas

単にquotを使用しないのはなぜですか?

quot a b

整数aとbをゼロに向かって切り捨てた整数商です。

135
Pointy

ここに私が自分で作ったものがあります:

quot' a b
         | a<b = 0  -- base case
         | otherwise = 1 + quot' a-b b
1
Jacob Stewart