Data.Eq
| Авторские права | (c) Университет Глазго 2005 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Стабильность | стабильная |
| Переносимость | переносимая |
| Безопасный Haskell | Надёжный |
| Язык | Haskell2010 |
Описание
Равенство
class Eq a where Исходный код
Класс Eq определяет равенство (==) и неравенство (/=). Все базовые типы данных, экспортируемые модулем Prelude, являются экземплярами Eq, и Eq может быть выведено для любого типа данных, составляющие которого также являются экземплярами Eq.
В отчёте Haskell не определены законы для Eq. Однако, обычно ожидается, что == реализует отношение эквивалентности, где два значения, сравниваемые как равные, неразличимы для «общедоступных» функций, а «общедоступная» функция — это та, которая не позволяет видеть детали реализации. Например, для типа, представляющего ненармализованные натуральные числа по модулю 100, «общедоступная» функция не делает различия между 1 и 201. Ожидается, что она будет обладать следующими свойствами:
- Рефлексивность
-
x == x=True - Симметричность
-
x == y=y == x - Транзитивность
- если
x == y && y == z=True, тоx == z=True - Заменяемость
- если
x == y=Trueиfявляется «общедоступной» функцией, тип возвращаемого значения которой является экземпляромEq, тоf x == f y=True - Отрицание
-
x /= y=not (x == y)
Минимальное полное определение: либо == либо /=.
Экземпляры
| Eq Bool | |
| Eq Char | |
| Eq Double |
Обратите внимание, что из-за наличия >>> 0/0 == (0/0 :: Double) False Также обратите внимание, что экземпляр >>> 0 == (-0 :: Double) True >>> recip 0 == recip (-0 :: Double) False |
| Eq Float |
Обратите внимание, что из-за наличия >>> 0/0 == (0/0 :: Float) False Также обратите внимание, что экземпляр >>> 0 == (-0 :: Float) True >>> recip 0 == recip (-0 :: Float) False |
| Eq Int | |
| Eq Int8 | Since: base-2.1 |
| Eq Int16 | Since: base-2.1 |
| Eq Int32 | Since: base-2.1 |
| Eq Int64 | Since: base-2.1 |
| Eq Integer | |
| Eq Natural | Since: base-4.8.0.0 |
| Eq Ordering | |
| Eq Word | |
| Eq Word8 | Since: base-2.1 |
| Eq Word16 | Since: base-2.1 |
| Eq Word32 | Since: base-2.1 |
| Eq Word64 | Since: base-2.1 |
| Eq SomeTypeRep | |
Определено в Data.Typeable.Internal Методы(==) :: SomeTypeRep -> SomeTypeRep -> Bool Source (/=) :: SomeTypeRep -> SomeTypeRep -> Bool Source | |
| Eq () | |
| Eq TyCon | |
| Eq Module | |
| Eq TrName | |
| Eq BigNat | |
| Eq SrcLoc | С тех пор как: base-4.9.0.0 |
| Eq GeneralCategory | С тех пор как: base-2.1 |
Определено в GHC.Unicode Методы(==) :: GeneralCategory -> GeneralCategory -> Bool Источник (/=) :: GeneralCategory -> GeneralCategory -> Bool Источник | |
| Eq Number | С тех пор как: base-4.6.0.0 |
| Eq Lexeme | С тех пор как: base-2.1 |
| Eq Fingerprint | Since: base-4.4.0.0 |
Определено в GHC.Fingerprint.Type Методы(==) :: Fingerprint -> Fingerprint -> Bool Source (/=) :: Fingerprint -> Fingerprint -> Bool Source | |
| Eq IOMode | Since: base-4.2.0.0 |
| Eq IntPtr | |
| Eq WordPtr | |
| Eq CUIntMax | |
| Eq CIntMax | |
| Eq CUIntPtr | |
| Eq CIntPtr | |
| Eq CSUSeconds | |
Определено в Foreign.C.Types Методы(==) :: CSUSeconds -> CSUSeconds -> Bool Source (/=) :: CSUSeconds -> CSUSeconds -> Bool Source | |
| Eq CUSeconds | |
| Eq CTime | |
| Eq CClock | |
| Eq CSigAtomic | |
Определено в Foreign.C.Types Методы(==) :: CSigAtomic -> CSigAtomic -> Bool Источник (/=) :: CSigAtomic -> CSigAtomic -> Bool Источник | |
| Eq CWchar | |
| Eq CSize | |
| Eq CPtrdiff | |
| Eq CDouble | |
| Eq CFloat | |
| Eq CBool | |
| Eq Any | С момента: base-2.1 |
| Eq All | С момента: base-2.1 |
| Eq ArithException | С момента: base-3.0 |
Определено в GHC.Exception.Type Методы(==) :: ArithException -> ArithException -> Bool Источник (/=) :: ArithException -> ArithException -> Bool Источник | |
| Eq ErrorCall | С момента: base-4.7.0.0 |
| Eq IOException | С момента: base-4.1.0.0 |
Определено в GHC.IO.Exception Методы(==) :: IOException -> IOException -> Bool Источник (/=) :: IOException -> IOException -> Bool Источник | |
| Eq MaskingState | С момента: base-4.3.0.0 |
Определено в GHC.IO Методы(==) :: MaskingState -> MaskingState -> Bool Источник (/=) :: MaskingState -> MaskingState -> Bool Источник | |
| Eq BufferState | С момента: base-4.2.0.0 |
Определено в GHC.IO.Buffer Методы(==) :: BufferState -> BufferState -> Bool Источник (/=) :: BufferState -> BufferState -> Bool Источник | |
| Eq CodingProgress | Since: base-4.4.0.0 |
Определено в GHC.IO.Encoding.Types Методы(==) :: CodingProgress -> CodingProgress -> Bool Источник (/=) :: CodingProgress -> CodingProgress -> Bool Источник | |
| Eq SeekMode | Since: base-4.2.0.0 |
| Eq IODeviceType | Since: base-4.2.0.0 |
Определено в GHC.IO.Device Методы(==) :: IODeviceType -> IODeviceType -> Bool Источник (/=) :: IODeviceType -> IODeviceType -> Bool Источник | |
| Eq NewlineMode | Since: base-4.2.0.0 |
Определено в GHC.IO.Handle.Types Методы(==) :: NewlineMode -> NewlineMode -> Bool Источник (/=) :: NewlineMode -> NewlineMode -> Bool Источник | |
| Eq Newline | Since: base-4.2.0.0 |
| Eq BufferMode | Since: base-4.2.0.0 |
Определено в GHC.IO.Handle.Types Методы(==) :: BufferMode -> BufferMode -> Bool Источник (/=) :: BufferMode -> BufferMode -> Bool Источник | |
| Eq Handle | Since: base-4.1.0.0 |
| Eq IOErrorType | Since: base-4.1.0.0 |
Определено в GHC.IO.Exception Краткое описание методов(==) :: IOErrorType -> IOErrorType -> Bool Source (/=) :: IOErrorType -> IOErrorType -> Bool Source | |
| Eq ExitCode | |
| Eq ArrayException | Since: base-4.2.0.0 |
Определено в GHC.IO.Exception Краткое описание методов(==) :: ArrayException -> ArrayException -> Bool Source (/=) :: ArrayException -> ArrayException -> Bool Source | |
| Eq AsyncException | Since: base-4.2.0.0 |
Определено в GHC.IO.Exception Краткое описание методов(==) :: AsyncException -> AsyncException -> Bool Source (/=) :: AsyncException -> AsyncException -> Bool Source | |
| Eq Errno | Since: base-2.1 |
| Eq Fd | |
| Eq CNfds | |
| Eq CSocklen | |
| Eq CTimer | |
| Eq CIno | |
| Eq CDev | |
| Eq Lifetime | Since: base-4.8.1.0 |
| Eq Event | Since: base-4.4.0.0 |
| Eq ThreadStatus | Since: base-4.3.0.0 |
Defined in GHC.Conc.Sync Methods(==) :: ThreadStatus -> ThreadStatus -> Bool Source (/=) :: ThreadStatus -> ThreadStatus -> Bool Source | |
| Eq BlockReason | Since: base-4.3.0.0 |
Defined in GHC.Conc.Sync Methods(==) :: BlockReason -> BlockReason -> Bool Source (/=) :: BlockReason -> BlockReason -> Bool Source | |
| Eq ThreadId | Since: base-4.2.0.0 |
| Eq TimeoutKey | Since: base-4.7.0.0 |
Defined in GHC.Event.TimerManager Methods(==) :: TimeoutKey -> TimeoutKey -> Bool Source (/=) :: TimeoutKey -> TimeoutKey -> Bool Source | |
| Eq FdKey | Since: base-4.4.0.0 |
| Eq HandlePosn | С тех пор как: base-4.1.0.0 |
Определено в GHC.IO.Handle Методы(==) :: HandlePosn -> HandlePosn -> Bool Источник (≠) :: HandlePosn -> HandlePosn -> Bool Источник | |
| Eq Version | С тех пор как: base-2.1 |
| Eq ByteOrder | С тех пор как: base-4.11.0.0 |
| Eq Unique | |
| Eq Timeout | |
| Eq Fixity | С тех пор как: base-4.0.0.0 |
| Eq ConstrRep | С тех пор как: base-4.0.0.0 |
| Eq DataRep | С тех пор как: base-4.0.0.0 |
| Eq Constr |
Равенство конструкторов С тех пор как: base-4.0.0.0 |
| Eq SpecConstrAnnotation | С тех пор как: base-4.3.0.0 |
Определено в GHC.Exts Методы(==) :: SpecConstrAnnotation -> SpecConstrAnnotation -> Bool Источник (/=) :: SpecConstrAnnotation -> SpecConstrAnnotation -> Bool Источник | |
| Eq Void | С тех пор как: base-4.8.0.0 |
| Eq a => Eq [a] | |
| Eq a => Eq (Maybe a) | С тех пор как: base-2.1 |
| Eq a => Eq (Ratio a) | С тех пор как: base-2.1 |
| Eq (StablePtr a) | С тех пор как: base-2.1 |
| Eq (Ptr a) | С тех пор как: base-2.1 |
| Eq (FunPtr a) | |
| Eq p => Eq (Par1 p) | С тех пор как: base-4.7.0.0 |
| Eq a => Eq (NonEmpty a) | С версии: base-4.9.0.0 |
| Eq (MVar a) | С версии: base-4.1.0.0 |
| Eq a => Eq (Down a) | С версии: base-4.6.0.0 |
| Eq a => Eq (Product a) | С версии: base-2.1 |
| Eq a => Eq (Sum a) | С версии: base-2.1 |
| Eq a => Eq (Dual a) | С версии: base-2.1 |
| Eq a => Eq (Last a) | С версии: base-2.1 |
| Eq a => Eq (First a) | С версии: base-2.1 |
| Eq (IORef a) |
Равенство указателей. С версии: base-4.0.0.0 |
| Eq (ForeignPtr a) | С момента: base-2.1 |
Определено в GHC.ForeignPtr Методы(==) :: ForeignPtr a -> ForeignPtr a -> Bool Исходный код (/=) :: ForeignPtr a -> ForeignPtr a -> Bool Исходный код | |
| Eq (TVar a) | С момента: base-4.8.0.0 |
Определено в GHC.Conc.Sync | |
| Eq a => Eq (Identity a) | С момента: base-4.8.0.0 |
Определено в Data.Functor.Identity Методы(==) :: Identity a -> Identity a -> Bool Исходный код (/=) :: Identity a -> Identity a -> Bool Исходный код | |
| Eq a => Eq (ZipList a) | С момента: base-4.7.0.0 |
Определено в Control.Applicative Методы(==) :: ZipList a -> ZipList a -> Bool Исходный код (/=) :: ZipList a -> ZipList a -> Bool Исходный код | |
| Eq (StableName a) | С момента: base-2.1 |
Определено в GHC.StableName Методы(==) :: StableName a -> StableName a -> Bool Исходный код (/=) :: StableName a -> StableName a -> Bool Исходный код | |
| Eq (Chan a) | С момента: base-4.4.0.0 |
Определено в Control.Concurrent.Chan | |
| Eq a => Eq (Option a) | С момента: base-4.9.0.0 |
Определено в Data.Semigroup Методы(==) :: Option a -> Option a -> Bool Исходный код (/=) :: Option a -> Option a -> Bool Исходный код | |
| Eq m => Eq (WrappedMonoid m) | С момента: base-4.9.0.0 |
Определено в Data.Semigroup Методы(==) :: WrappedMonoid m -> WrappedMonoid m -> Bool Источник (/=) :: WrappedMonoid m -> WrappedMonoid m -> Bool Источник | |
| Eq a => Eq (Last a) | С: base-4.9.0.0 |
| Eq a => Eq (First a) | С: base-4.9.0.0 |
| Eq a => Eq (Max a) | С: base-4.9.0.0 |
| Eq a => Eq (Min a) | С: base-4.9.0.0 |
| Eq a => Eq (Complex a) | С: base-2.1 |
| (Eq a, Eq b) => Eq (Either a b) | С: base-2.1 |
| Eq (V1 p) | С: base-4.9.0.0 |
| Eq (U1 p) | С: base-4.9.0.0 |
| Eq (TypeRep a) | С: base-2.1 |
| (Eq a, Eq b) => Eq (a, b) | |
| Eq (STRef s a) |
Равенство указателей. С версии: base-2.1 |
| (Ix i, Eq e) => Eq (Array i e) | С версии: base-2.1 |
| Eq (Proxy s) | С версии: base-4.7.0.0 |
| Eq (IOArray i e) | С версии: base-4.1.0.0 |
| Eq a => Eq (Arg a b) | С версии: base-4.9.0.0 |
| Eq (Fixed a) | С версии: base-2.1 |
| Eq (f p) => Eq (Rec1 f p) | С версии: base-4.7.0.0 |
| Eq (URec Word p) | С версии: base-4.9.0.0 |
Определено в GHC.Generics | |
| Eq (URec Int p) | С момента: base-4.9.0.0 |
Определено в GHC.Generics | |
| Eq (URec Float p) | |
Определено в GHC.Generics | |
| Eq (URec Double p) | С момента: base-4.9.0.0 |
Определено в GHC.Generics | |
| Eq (URec Char p) | С момента: base-4.9.0.0 |
Определено в GHC.Generics | |
| Eq (URec (Ptr ()) p) | С момента: base-4.9.0.0 |
Определено в GHC.Generics | |
| (Eq a, Eq b, Eq c) => Eq (a, b, c) | |
Определено в GHC.Classes Методы(==) :: (a, b, c) -> (a, b, c) -> Bool Исходный код (/=) :: (a, b, c) -> (a, b, c) -> Bool Исходный код | |
| Eq (STArray s i e) | С момента: base-2.1 |
| Eq (a :~: b) | С момента: base-4.7.0.0 |
| Eq (Coercion a b) | С версии: base-4.7.0.0 |
| Eq (f a) => Eq (Alt f a) | С версии: base-4.8.0.0 |
| Eq (f a) => Eq (Ap f a) | С версии: base-4.12.0.0 |
| Eq a => Eq (Const a b) | С версии: base-4.9.0.0 |
| Eq c => Eq (K1 i c p) | С версии: base-4.7.0.0 |
| (Eq (f p), Eq (g p)) => Eq ((f :+: g) p) | С версии: base-4.7.0.0 |
| (Eq (f p), Eq (g p)) => Eq ((f :*: g) p) | С версии: base-4.7.0.0 |
| (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d) | |
| Eq (a :~~: b) | Since: base-4.10.0.0 |
| (Eq1 f, Eq1 g, Eq a) => Eq (Sum f g a) | Since: base-4.9.0.0 |
| (Eq1 f, Eq1 g, Eq a) => Eq (Product f g a) | Since: base-4.9.0.0 |
| Eq (f p) => Eq (M1 i c f p) | Since: base-4.7.0.0 |
| Eq (f (g p)) => Eq ((f :.: g) p) | Since: base-4.7.0.0 |
| (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e) | |
| (Eq1 f, Eq1 g, Eq a) => Eq (Compose f g a) | Since: base-4.9.0.0 |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => Eq (a, b, c, d, e, f) | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g) => Eq (a, b, c, d, e, f, g) | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h) => Eq (a, b, c, d, e, f, g, h) | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i) => Eq (a, b, c, d, e, f, g, h, i) | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j) => Eq (a, b, c, d, e, f, g, h, i, j) | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k) => Eq (a, b, c, d, e, f, g, h, i, j, k) | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l) => Eq (a, b, c, d, e, f, g, h, i, j, k, l) | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m) | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n) | |
Определено в GHC.Classes Методы(==) :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Bool Исходный код (/=) :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Bool Исходный код | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) | |
Определено в GHC.Classes Методы(==) :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Bool Исходный код (/=) :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Bool Исходный код | |
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Data-Eq.html