gpt4 book ai didi

haskell - fmap 如何用于 List

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

Learn you a haskell给出有关 Functor 类型类的描述。

我可以看到,对于列表,它的实现如下:

instance Functor [] where  
fmap = map

但是这是如何工作的呢?

在类型类 Functor 中,fmap 甚至没有实现。它所拥有的只是这样的类型声明:

class Functor f where  
fmap :: (a -> b) -> f a -> f b

仅通过类型声明,Haskell 如何正确计算列表的映射操作?

最佳答案

map 只是一个类型为 (a -> b) -> [a] -> [b] 的普通函数。与fmap不同,它不是Functor类型类的一部分。它的工作原理完全符合您的想法。

类型类背后的想法是,您使用类型来确定要使用的实现。当我们说 instance Functor [] where ... 时,我们是在告诉编译器 []fmap 的实现是什么(列表型)是。

在这种情况下,fmap 的实现只是 map,这是一个普通函数。

关于haskell - fmap 如何用于 List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774428/

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