2016-07-29 20 views
2

中斷長長的組合或管道功能的正確方法是什麼?如何中斷,退出撰寫或管道?

讓我們假設鏈不需要在第二個函數之後運行,因爲它發現一個無效值,並且只要用戶提交的值無效,它就不需要繼續接下來的5個函數。

你是否返回一個未定義的/空參數,所以其餘的函數只是檢查是否沒有返回值,在這種情況下只是保持傳遞空的參數?

回答

3

我不認爲有一種通用的方式來處理這個問題。

通常在與algebraic data types一起使用時,事物被定義爲可以繼續運行功能,即使您希望的數據不存在時也是如此。這是類型的非常有用的功能之一,例如MaybeEither

compose或相關函數的大多數版本不提供早期的轉義機制。拉姆達當然不會。