Существует ли класс типов Purescript, обобщающий целые числа?
Haskell имеет Integral
класс типов, который включает Integer
, Int
, Int32
, Int64
, Natural
, так далее.
Есть ли подобный класс типов в Purescript?
1 ответ
У нас нет целочисленных классов в PureScript, но существует иерархия числовых классов:
Каждый класс добавляет законы, поэтому, хотя CommutativeRing
а также Field
у классов нет операций, они не являются избыточными.
Любой тип, который является EuclideanRing
также удовлетворяет законам для целочисленных областей, которые обобщают целые числа, поэтому я думаю, что это должно соответствовать вашим потребностям.
Fields
иметь ненулевые мультипликативные инверсии: mod a b = 0
для всех a
а также b
Таким образом, использование этого ограничения исключит возможность целочисленного деления и т. д., если это то, что вы ищете, так что вы определенно не хотите заходить так далеко вниз по иерархии.