リストを折りたたむ代わりに関数出力を使用することを除いて、一種の「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 を返します。
事前に感謝します。