簡體   English   中英

Haskell,順序程序流程?

[英]Haskell, sequential program flow?

道歉,因為這似乎是一個非常奇怪的問題。 我在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

如果您想保持從左到右的閱讀順序,您可以定義

(.>) = flip (.) -- are those in standard library somewhere?
($>) = flip ($)

myComplex = Something1 $> myFunc1 .> myFunc2 .> myFunc3 .> myFunc4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM