Разделите Int на Int и верните Int

Мне нужна функция, которая получает два Int (a и b) и возвращает A/B как Int. Я уверен, что 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?

Ответ 1

Почему бы просто не использовать quot?

quot a b

- целое число целых чисел a и b, усеченных в нуль.

Ответ 2

Вот что я сделал, чтобы сделать свой собственный:

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