Как выглядит функтор идентичности? - PullRequest
0 голосов
/ 25 октября 2019

В Haskell есть функция тождества, которая просто возвращает заданное значение.

id :: a -> a 

Существует также функтор идентичности и как такой функтор определен в Haskell?

1 Ответ

3 голосов
/ 25 октября 2019

Да, функтор идентификации существует:

Из документации:

Функтор идентификации и монада.

Этот конструктор тривиального типа служит двум целям:

  • Может использоваться с функциями, параметризованными классами функторов или монад.
  • Может использоваться в качестве базовой монады, к которой может быть применен ряд монадных преобразователей для построения составной монады. ,Большинство монадных трансформаторных модулей включают специальный случай применения трансформатора для идентификации. Например, State s - это сокращение от StateT s Identity.

https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Functor-Identity.html

Определение в источнике находится здесь: https://hackage.haskell.org/package/base-4.12.0.0/docs/src/Data.Functor.Identity.html

...