Что это значит, что "лифт почти такой же, как карта"?

Леонардо Борхес написал отличную статью под названием "Функциональная композиция с монадами, Клейслисом и функторами".

В нем он комментирует:

Марк указал мне, что лифт почти такой же, как карта, но с перевернутыми аргументами.

Это означает, что это:

val f = Functor[Option].lift(parts) compose make

может быть изменен на:

val g = make(_:Int).map(parts)

Мой вопрос: что означает, что "лифт почти такой же, как карта?"

1 ответ

Решение

Из кода функтора скаляза:

def map[A, B](fa: F[A])(f: A => B): F[B]

def lift[A, B](f: A => B): F[A] => F[B] = map(_)(f)

ПРИМЕЧАНИЕ: лифт только что определен в терминах карты (перестановка аргументов)

В основном, когда люди начинают с функционального программирования, они знакомятся с map как отображение функции на последовательность вещей, но map в целом это более абстрактное понятие, связанное с функтором.

Другие вопросы по тегам