4

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

事前に感謝します。

4

1 に答える 1