繁体   English   中英

foldl 类型中 `ta -> b` 的含义

[英]Meaning of `t a -> b` in type of foldl

我检查了foldl function 的签名,结果如下:

> :t foldl
foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b

我对这部分感到困惑ta ->b这部分是什么意思?
我的猜测是否正确,这意味着foldl function 的第三个参数是包含a类型元素的Foldable数据结构?

的。 tFoldable类型类的成员,因此我们它是a的可折叠元素。

例如,如果tt ~ [] ,则签名为:

foldl :: (b -> a -> b) -> b -> [] a -> b

或更不规范:

foldl :: (b -> a -> b) -> b -> [a] -> b

但是t可以是另一个Foldable ,例如MaybeTreeEither c等。因此我们可以在这样的结构上使用Foldl

foldl :: (b -> a -> b) -> b -> [a] -> b
foldl :: (b -> a -> b) -> b -> Maybe a -> b
foldl :: (b -> a -> b) -> b -> Tree a -> b
foldl :: (b -> a -> b) -> b -> Either c a -> b

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM