将功能列表应用于输入

时间:2019-12-04 16:27:28

标签: haskell functional-programming

我想将功能列表应用于输入。 例如,如果我的函数列表是[(+1),(*3),(+(-2))],而我的输入是5,我想从右到左应用这些函数,因此输出将是10

1 个答案:

答案 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