Следует ли "Лифтинг" в функциональном программировании строгим правилам?

Я рассмотрел "подъемные" вопросы и ответы, примеры которых мне показались, что функция подъема подобна любой функции преобразования, которая изменяет форму (например, преобразование монады).

Я пропускаю какую-либо точку или функцию подъема ("концепция подъема"), есть какие-то правила?

Если нет, то это просто концепция в функциональных преобразованиях?

1 ответ

Подъем не меняет "форму", только "тип". Под этим я подразумеваю, что поднятие функции, например, в List<A> приводит к List<B>, Форма (List) не изменяется, но конкретный тип может.

Вы правы в том, что это похоже на любое другое преобразование. На самом деле стандартная операция map является механизмом "подъема" функции единственной переменной в Functor (тип данных, который отображается на карту). Итак, вы можете думать о map как lift1тогда у вас есть lift2 (для функций двух переменных) и т. д.

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