2016-07-29 21 views
2

中断长长的组合或管道功能的正确方法是什么?如何中断,退出撰写或管道?

让我们假设链不需要在第二个函数之后运行,因为它发现一个无效值,并且只要用户提交的值无效,它就不需要继续接下来的5个函数。

你是否返回一个未定义的/空参数,所以其余的函数只是检查是否没有返回值,在这种情况下只是保持传递空的参数?

回答

3

我不认为有一种通用的方式来处理这个问题。

通常在与algebraic data types一起使用时,事物被定义为可以继续运行功能,即使您希望的数据不存在时也是如此。这是类型的非常有用的功能之一,例如MaybeEither

compose或相关函数的大多数版本不提供早期的转义机制。拉姆达当然不会。