我想将功能列表应用于输入。
例如,如果我的函数列表是[(+1),(*3),(+(-2))]
,而我的输入是5
,我想从右到左应用这些函数,因此输出将是10
。
答案 0 :(得分:2)
解决了mkUltras的评论:
您可以使用foldr或foldl来减少列表,具体取决于方向。 要应用功能用户$。在这种情况下,表达式为:foldr($)5 [(+1),(* 3),(+(-2))]
我的最终代码:succApply x n = foldr ($) n x
示例输入:
succApply [(+1),(*2),(+(-1))] 1 == 1
succApply [init, tail] [1..5] == [2,3,4]
succApply [(*2), id, (+1)] 5 == 12