如何在Haskell中对先前的计算结果应用相同的函数

时间:2015-12-15 17:23:58

标签: haskell

我有一个Haskell函数 返回 列表(h:t)。 我想在自己的结果上递归地应用该函数。像这样:

func (inp1) -> result1;
func (result1) -> result2;
func (result2) -> result3;
...

我该怎么做?

2 个答案:

答案 0 :(得分:2)

iterate似乎符合条例草案:

result = take however_many_you_need $ iterate func initial_value

Haskell的懒惰保证func的计算时间足够长。

答案 1 :(得分:0)

我想你可能想要这样的东西

funcApplier inp
    | isDone inp = inp
    | otherwise = funcApplier (func inp)

其中isDone是一个布尔返回函数,用于确定您的输入处于您想要的状态。