gpt4 book ai didi

haskell - 在 Haskell 中,map 函数是一个仿函数吗?

转载 作者:行者123 更新时间:2023-12-05 08:17:21 25 4
gpt4 key购买 nike

map 的类型是:(a->b) -> [a] -> [b]

而仿函数 fmap 的类型是:

仿函数 f => (a+b) -> f a -> f b我在维基百科上读到 map 是多态态射,而 fmap 是多型态射,但这对我来说并没有真正解决问题。

所以我的问题是:map 函数是仿函数吗?

最佳答案

用 Haskell 术语来说,fmap是类型类 Functor 中的一个方法,而不是仿函数本身。 [] , Maybe , ... 是实例化类 Functor 的类型构造函数并且,滥用语言,您可以说“Maybe 是一个仿函数”。

在数学术语中,一个仿函数(或者更具体地说,在这种情况下,Hask 类别中的一个内仿函数,Haskell 类型的类别)由两个映射组成:第一个从类型到另一个,第二个从箭头( a -> b ) 到另一个 ( f a -> f b ) 保留结构。从这个意义上说,Maybe是将一种类型映射到另一种类型的第一个箭头,比如 IntMaybe Intfmap对于 Maybe是第二个箭头。

关于haskell - 在 Haskell 中,map 函数是一个仿函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46620293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com