Spec-Zone.ru › Haskell 9

6.6. Механизм вывода

Haskell 98 позволяет программисту добавлять в объявление типа данных клаузу deriving для генерации стандартного объявления экземпляра для указанного класса. GHC расширяет этот механизм по нескольким направлениям:

  • Механизм вывода может использоваться отдельно от объявления типа данных, используя механизм вывода в отдельном блоке.
  • В Haskell 98 единственными выводимыми классами являются Eq, Ord, Enum, Ix, Bounded, Read, и Show. Различные расширения языка расширяют этот список.
  • Помимо стандартного подхода к выводу экземпляров путём генерации всех определений методов, GHC поддерживает две дополнительные стратегии вывода, которые могут выводить произвольные классы:

    • Обобщенный вывод для newtype для newtype и
    • Вывод любого класса с помощью пустого объявления экземпляра.

    Пользователь может необязательно объявить желаемую стратегию вывода, особенно если компилятор выбирает неправильную по умолчанию.

  • 6.6.1. Вывод экземпляров для пустых типов данных
  • 6.6.2. Вывод контекста для клаузов deriving
  • 6.6.3. Объявления deriving в отдельном блоке
  • 6.6.4. Вывод экземпляров дополнительных классов (Data, и т.д.)
  • 6.6.5. Обобщенные выведенные экземпляры для newtype
  • 6.6.6. Вывод любого другого класса
  • 6.6.7. Стратегии вывода
  • 6.6.8. Вывод через

© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/9.12.1/docs/users_guide/exts/deriving.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API