[英]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.