抱歉,这似乎是一个非常奇怪的问题。我在 haskell 中的所有经验都是编写函数,这些函数通常会递归进行(并且每次迭代都会减少一些数据元素)。但是,我有一组函数,每个函数都对一段数据进行一些处理,并且我希望我的调用方法包含每个阶段,例如

(伪代码)

myFunc1 :: Something1 -> Something2

execute myFunc1 Something1
.
execute myFunc2
.
execute myFunc3
.
execute myFunc4
.

return Something2

但我不确定这是否可能?我是否只需要拥有一些愚蠢的东西,例如:
myFunc4(myFunc3(myFunc2(MyFunc1(Something1)))) ?

编辑:上面的行肯定是对的!

最佳答案

使用函数调用运算符 $ :

myFunc4 $ myFunc3 $ myFunc2 $ myFunc1 $ Something1

或函数组合:
myFunc4 . myFunc3 . myFunc2 . myFunc1 $ Something1

let :
let x = myFunc1 Something1 in
let y = myFunc2 x in
let z = myFunc3 y in
myFunc4 z

关于Haskell,顺序程序流?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8107875/

10-13 06:39