Я изучил «подъемные» вопросы и ответы, примеры, которые мне показались, функция подъема такая же, как и любая функция преобразования, которая меняет форму (например, преобразование монады).
Я пропустил какую-либо точку или функция подъема («концепция подъема») имеет какие-либо правила?
Если нет, то это просто концепция в функциональных преобразованиях?
liftM
, то правила — этоFunctor
законы, потому чтоliftM
— это другое названиеfmap
. - person Rein Henrichs   schedule 11.07.2017liftM
, который переводит функцию в область действия функтора. Каждый из них сам по себе следует правилам, но название — это просто совпадение. Например, когда объектно-ориентированные программисты и функциональные программисты имеют в виду совершенно разные вещи, когда говорят о композиции. - person Silvio Mayolo   schedule 11.07.2017lift
— это одно из тех слов, которые означают то, что хочет сказать говорящий (hoist
— другое слово), хотя обычно оно имеет некоторый оттенок использования чего-то в более широком контексте. - person Benjamin Hodgson♦   schedule 11.07.2017Left :: a -> Either a b
,Right :: b -> Either a b
иIdentity :: a -> Identity
(тривиальный).lift
(изMonadTrans
),liftM
и примеры scala в связанном вопросе - все это инъекции. (Кроме того, все заявления о том, что лифт означает все, что вы хотите, глупы. Очевидно, что слово означает все, что вы выбрали! Но очевидно, что существует общепонятная основная концепция) - person user2407038   schedule 11.07.2017data U2 m a = U2
instance MonadTrans U2 where lift _ = U2
определяет вполне допустимый экземплярMonadTrans
, но не инъекцию. То же самое относится кliftM
/fmap
тривиальному функтору. Приемистости также явно недостаточно для большинства ощущений подъемной силы. Так что я не думаю, что инъективность действительно имеет к этому какое-то отношение. - person dfeuer   schedule 15.07.2017