我正在寻找一种类似于“foldWhile”的haskell函数或模式,除了它使用函数输出而不是折叠列表之外..一些代码可能会更好地解释它。
简化和伪:
nums :: [Integer]
nums = [1]
cond :: v -> [Integer] -> Bool
cond v ls = elem v ls
func :: x -> ls -> [Integer]
func x ls = x `some_op` ls
我需要一种应用模式,例如:
(cond 1 num) && func x num -> num'
(cond 1 num') && func x num' -> num''
(cond 1 num'') && func x num'' -> num'''
...
一旦 cond 返回 False,产生最后一个 num。
任何帮助将不胜感激,在此先感谢。