Parser 之前, 让我们先来了解一个概念 -- 组合子.组合子, 顾名思义, 就是对某种抽象的组合操作, 在本文中, 特指为对解析器的组合操作.如上是示例所示, 在TypeScript 中, 我们也是经常使用...状态时, 不对其进行任何操作, 而是直接返回一个rejected状态的Promise.我们可以脱离Promise, 进而得出then的更加泛用的抽象:对一个上下文中的结果进行进一步计算, 其返回值同样包含于这个上下文中...Parser的返回值.这个类型转换具有通用性, 是函数式编程中的一个重要抽象, 在本节中会化一些篇幅对其推导, 最终将改抽象对应到Haskell 的sequenceA函数.为了Either[...(t a)这段类型签名中的Applicative f =>是Haskell 中的类型约束, 在余下篇幅中会对其重点讲解, 可以暂时对其忽略.即, Haskell 已经有我们所需要的类型转行的抽象, 函数名为...能够对一系列上下文进行串联并且收集其中的值.Monad在Applicative的基础上, 能够基于一个上下文中的值, 灵活地创建另外一个包裹在上下文中的值. -- stackoverflow上的回答在Promise.all