如何在Haskell中运行一系列操作(函数)?

dev*_*ium 2 haskell functional-programming

假设我有一个值列表,我想要应用一系列操作,直到得到最终结果:

[0, 1, 2]

firstOperation xs = map (+1) xs
secondOperation xs = filter even xs
thirdOperation xs = sum xs
Run Code Online (Sandbox Code Playgroud)

虽然我确信还有其他更好的方法可以解决这个问题,但我目前唯一知道的是定义一个函数,该函数将所有这些函数嵌套在另一个函数中:

runAllOperations xs = thirdOperation (secondOperation (firstOperation xs))
Run Code Online (Sandbox Code Playgroud)

但这既丑陋又引发了一个问题,即如果我有10次操作,将这段代码变成一个维护噩梦.

在这里实现某种类似的正确方法是什么?请记住,我上面给出的示例仅仅是对我当前项目所面临的内容的过度简化.

小智 6

.或者$(和更具可读性)

runAllOperations xs = thirdOperation $ secondOperation $ firstOperation xs
Run Code Online (Sandbox Code Playgroud)

要么

runAllOperations = thirdOperation . secondOperation . firstOperation
Run Code Online (Sandbox Code Playgroud)