小编use*_*457的帖子

使用遍历实现sequenceA

sequenceA在Data.Traversable中的实现如下

 sequenceA :: Applicative f => t (f a) -> f (t a)
 sequenceA = traverse id
Run Code Online (Sandbox Code Playgroud)

我无法理解的类型traverse idtraverse的类型为:traverse :: Applicative f => (a -> f b) -> t a -> f (t b)其第一个参数的类型为:(a -> f b)但是对于sequenceA,id函数的类型为(a -> a)。f在哪里?

haskell types

4
推荐指数
1
解决办法
151
查看次数

使用bind实现连接

我试图了解如何使用bind(>> =)实现连接.

join x  = x >>= id
Run Code Online (Sandbox Code Playgroud)

id的类型为(a - > a),但bind需要类型(a - > mb)的函数.我无法匹配这种类型.

haskell

0
推荐指数
1
解决办法
128
查看次数

标签 统计

haskell ×2

types ×1