sequence
可以非常直接地定义为具有身份函数的遍历 - 在haskell中:
sequence = traverse id
或在Scalaz 6中(从上面的第二个链接中),更多的详细信息:
def sequence[N[_], B](implicit
a: A <:< N[B],
t: Traverse[M],
n: Applicative[N]
): N[M[B]] = traverse((z: A) => (z: N[B]))
因此,是的,可以对具有可遍历实例的任何类型进行测序(甚至不需要成为单子)。