Интегральные операторы quot vs. div

Тип classа Интеграл имеет две операции quot и div , но в Haskell 2010 Language Report не указано, что они должны делать. Предполагая, что div является интегральным делением, что иначе quot , или какова цель quot ? Когда вы используете один, а другой?

Процитировать раздел 6.4.2 из отчета Haskell:

Методы classа quot , rem , div и mod удовлетворяют этим законам, если y отличен от нуля:

 (x `quot` y)*y + (x `rem` y) == x (x `div` y)*y + (x `mod` y) == x 

– это целочисленное деление, усеченное к нулю, а результат div усечен в сторону отрицательной бесконечности.

Функция div часто является более естественной для использования, тогда как функция quot соответствует машинной инструкции на современных машинах, поэтому она несколько эффективнее.

Они ведут себя по-разному, когда имеют дело с отрицательными числами. Рассматривать:

 Hugs> (-20) `divMod` 3 (-7,1) Hugs> (-20) `quotRem` 3 (-6,-2) 

Здесь -7 * 3 + 1 = -20 и -6 * 3 + (-2) = -20 , но два способа дают вам разные ответы.

Также см. Здесь: http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html

Определение для quot представляет собой «целочисленное деление, усеченное к нулю», тогда как определение для div является «целым делением, усеченным в сторону отрицательной бесконечности».

  • Список различных типов?
  • Существует ли игла Haskell для обновления вложенной структуры данных?
  • Начало работы с Haskell
  • Currying 3 Аргументы в Haskell
  • Инструменты для анализа производительности программы Haskell
  • Различие между classами MonadPlus, Alternative и Monoid?
  • Сравнение функций в Haskell
  • Как происходит работа в Haskell?
  • Scala: Как определить «общие» параметры функции?
  • Композиция Monads v. Аппликативные функторы
  • Разбиение списка в список возможных кортежей
  • Interesting Posts

    Является ли оператор экспоненты в C #?

    Выполнить панель состояния Excel?

    Что такое консольный сеанс в RDP?

    Как определить, является ли строка числом?

    Инструменты управления проектами, такие как BaseCamp, которые интегрируются с SalesForce?

    Как вы конкретно заказываете ось ggplot2 x вместо алфавитного порядка?

    Где константы метода запроса в API Servlet?

    Почему невозможно использовать регулярное выражение для анализа HTML / XML: формальное объяснение в терминах непрофессионала

    Какой лучший дизайн базы данных: больше таблиц или больше столбцов?

    ng-click не работает в шаблоне директивы

    Как вручную установить аутентифицированного пользователя в Spring Security / SpringMVC

    Почему стеки обычно растут вниз?

    Двойная загрузка Linux / Windows 7

    Ошибка входа в систему psexec: «неизвестное имя пользователя или неверный пароль».

    Почему мы не должны создавать controller Spring MVC @Transactional?

    Давайте будем гением компьютера.