我有一个Haskell函数 返回 列表(h:t)
。
我想在自己的结果上递归地应用该函数。像这样:
func (inp1) -> result1;
func (result1) -> result2;
func (result2) -> result3;
...
我该怎么做?
答案 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
是一个布尔返回函数,用于确定您的输入处于您想要的状态。