3
我想知道是否有一個標準函數迭代一個函數,它返回一個初始值(可能值),收集列表中的值,但是當它到達Nothing時結束列表。該功能例如可以實現像這樣:是否有像迭代這樣的標準Haskell函數可以停止任何操作?
iterateMaybe f a = a : iterMaybe (f a) where
iterMaybe Nothing = []
iterMaybe (Just a) = a : iterMaybe (f a)
或略有不同,像這樣:
無的 the functions that Hoogle finds匹配iterateMaybe' f Nothing = []
iterateMaybe' f (Just a) = a : iterateMaybe' f (f a)
。
當然,您可以執行'iterateMaybe f x = x:helper f x',其中'helper'具有在答案中給出的'iterateMaybe'的定義。這給你從最初元素開始的列表。 – amar47shah