如果用Scala编写,则续行monad基本上是
opaque type Cont[R, +A] = (A => R) => R
此类型签名(A => R) => R
与foreach
/ Traversable
等中的Future
类似:
def foreach[R](f: A => R) => Unit
如果以lambda形式编写,并假设R =:= Unit
,则为(A => Unit) => Unit
,它是返回类型Unit
的延续。
我在这里不完全了解这种联系:我们可以安全地将Traversable
/ Observable
视为允许回调函数A => Unit
的延续吗?