Разделите Int на Int и верните Int - PullRequest
74 голосов
/ 05 декабря 2010

Мне нужна функция, которая получает два Int s (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?

Ответы [ 2 ]

134 голосов
/ 05 декабря 2010

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

quot a b

- это целое отношение целых чисел a и b, усеченных до нуля.

1 голос
/ 10 февраля 2018

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

quot' a b
         | a<b = 0  -- base case
         | otherwise = 1 + quot' a-b b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...