关联地图或字典是算子吗?

gri*_*eak 1 haskell functional-programming typeclass

我相信,如果我们将地图中的值视为函子中要考虑的值,将键作为上下文的一部分考虑(我从Typeclassopedia中提取这种语言 ),但我不确定这些注意事项是否意味着它一般来说,它不是一个算子.

J. *_*son 7

是的,你有一个这样的例子containers叫做Data.Map.Map.这是一个例子Functor.

您还可以将地图视为从键到Maybe值的函数

newtype Map k v = Map { lookup :: k -> Maybe v }
Run Code Online (Sandbox Code Playgroud)

因为(->) kFunctorMaybea是FunctorFunctors的组成Functors然后Map也是a Functor.