Когда я запрашиваю тип
инфиксных и div
оператора/
оператора в GHCI, я считаю, что div
имеет подпись (div) :: Integral a => a -> a -> a
пока /
имеет подпись (/) Fractional a => a -> a -> a
. В то время как они выполняют почти то же самое, в чем разница между типами классов Fractional
и Integral
?Типы классов Haskell - разница между div и /?
0
A
ответ
4
Существует концептуальная разница между этими операциями:
div
является деление с остатком (см euclidean domain)(/)
является дробным делением - это обратной операция(*)
5/2 = 2.5
vs 5 `div` 2 = 2
Разница между классов только что
Integral
для чисел, которые можно сделать деление с остатком с- и
Fractional
для рационального как чисел в видеa/b
- думать о1/2
или2/7
и т.д.
Действительно, это общая проблема, если смешать оба Fractional
и Integral
операции типа div
и (/)
как только в пределах прелюдии нет типа, который является экземпляром обоих этих классов, и поэтому вы получите хорошо типизированное выражение, которое вы часто не можете оценить.
Обычная затруднительное для этого используется fromIntegral
идти преобразовать в общую Num
например, вы ориентируетесь.
Смежные вопросы
- 1. Синтаксис и типы классов записей Haskell
- 2. Внешние типы и типы Unboxed в Haskell
- 3. Типы классов и вызовы конструктора
- 4. Как использовать типы в классах классов Haskell?
- 5. Разница между div и диапазоном
- 6. Типы и подписи Haskell
- 7. Разница между типом и Newtype в Haskell
- 8. Разница между печатью и putStrLn в Haskell
- 9. Haskell: Разница между hGetBuf, hGetBufSome и hGetBufNonBlocking
- 10. разница между div # myid и div #myid
- 11. В чем разница между $ ('# div') и _ $ ('div')?
- 12. Типы Singleton в Haskell
- 13. Разница между учебниками по haskell
- 14. Разница между библиотеками классов и отдельными классами
- 15. Разница между диаграммой классов и диаграммами связей?
- 16. разница между объектом и экземпляром для классов
- 17. Разница между областью классов и кучей
- 18. разница между статической и экземпляром стороны классов
- 19. Разница между Context.openFileInput() и использованием классов Java.IO
- 20. Разница между диаграммой ER и диаграммой классов
- 21. C# разница между списком классов
- 22. разница поставляю между унаследованных классов
- 23. Разница между библиотекой классов и библиотекой классов ASP.NETvNext?
- 24. разница между «диаграммами классов» и «дизайном диаграммой классов»
- 25. Разница между библиотекой классов и переносимой библиотекой классов
- 26. Haskell: Пространственно Типы и IO
- 27. Haskell - типы, Перечисления и функции
- 28. Haskell данных Типы и классы
- 29. Типы зависимых типов и типы классов
- 30. Разница между div ~ div и div: not (: first-of-type)?
они не делают то же самое вообще - 'div' является делением с остатком и'/'является ... дробным делением - думаю' 5/2 = 2.5' vs '' 5 'div' 2 = 2'' - видите ли вы разницу? - Разница между классами такова: «Интеграл» для чисел, которые вы можете делать с делением с остатком, а дробное - для рациональных чисел ('a/b') – Carsten
Теперь я вижу .. Спасибо :-) –
@ Carsten: Не могли бы вы опубликовать это как ответ для лучшей видимости? Благодаря! –