看Haskell文档,提升似乎基本上是fmap
的概括,它允许使用多个参数进行函数映射。
Wikipedia关于提升的文章给出了不同的观点,它根据类别中的态射以及它如何与类别中的其他对象和态射定义了“提升”(我不会给出详细信息这里)。我想这可能与Haskell情况有关,如果我们考虑使用Cat(类别的类别,从而使我们的形态射函数成为仿函数),但是我看不到电梯的这一类别理论概念如何与Haskell中的类别概念相关联基于链接的文章(如果有的话)。
如果这两个概念并没有真正的关联,只是名字相似,那么Haskell所使用的升降机(类别理论是根本吗?
升降机和扩展的双重概念在Haskell中是绝对使用的,也许是以共音extend
和单子bind
为幌子的。 (令人困惑的是,extend
是一个升程,而不是一个扩展。)组合w
的extend
让我们采用函数w a -> b
并沿extract :: w b -> b
进行升标以获得地图w a -> w b
。在ASCII艺术中,给定图
“提升”在函数式编程中不仅在fmap
中而且在许多其他情况下,都会出现很多次。 “举重”示例包括: