Главная » Haskell » Модуль Eq

0

также предназначен для разгрузки стандартного модуля Prelude. В него вынесено определение класса Eq (см. стр. 117) и определения нескольких десятков экземпляров для этого класса. Использование:

import  Data.Eq

Класс Eq определяет  класс типов, в которых имеет смысл отношение сравнения. Соответственно, определены два метода: (==) (равенство значений) и (/=)  (неравенство значений). Для экземпляра можно определять либо один метод, либо другой, либо оба вместе. Все базовые типы данных являются экземплярами  этого класса. Более того, для произвольного алгебраического типа данных можно автоматически построить экземпляр этого класса, если каждый из компонентов типа является экземпляром класса Eq.

Соответственно,  в рассматриваемом  модуле определены  экземпляры этого класса для следующих типов: All, Any, ArithException, Array, ArrayException, AsyncException,   Bool,   BufferMode,   BufferState,  ByteString,  CCc,   CChar, CClock, CDev,  CDouble, CFloat,  CGid, CIno, CInt,  CIntMax, CIntPtr, CLDouble, CLLong,  CLong, CMode,  CNlink,  COff, Complex, CPid, CPtrdiff,  CRLim,  CSChar, CShort,  CSigAtomic,  CSize, CSpeed,  CSsize,  CTcflag,   CTime,  CUChar,  CUInt, CUIntMax, CUIntPtr,   CULLong,  CULong,  CUShort, CUid,  CWchar,  CalendarTime, Char,  ClockTime,  Constr,   ConstrRep,  DataRep,   Day, Double,  Either,  Errno, Exception,   ExitCode,  FDType,  Fd, Fixed,  Fixity,  Float,  ForeignPtr, FunPtr, GeneralCategory,    Handle,    HandlePosn,  HashData,  IOArray,    IOErrorType, IOException,  IOMode,  IORef, Inserts,  Int,  Int16, Int32, Int64, Int8,  IntMap, IntPtr, IntSet, Integer, Key, KeyPr, Lexeme, Map, Maybe, Month,  MVar, Ordering, PackedString, Permissions, Product, Ptr, Ratio, SeekMode, Seq, Set, StableName, StablePtr, STArray STRef, Sum,  ThreadId,  TimeDiff,  TimeLocale,  Tree,  TVar, TyCon, TypeRep,  UArray, Unique, Version,  ViewL, ViewR, Word, Word16,  Word32, Word64, Word8, WordPtr и [].

Кроме того, в этом модуле также определены экземпляры класса Eq для кортежей размером от 0 до 14.

Источник: Душкин Р. В., Справочник по языку Haskell. М.: ДМК Пресс, 2008. 544 с., ил.

По теме:

  • Комментарии