Haskell、逐次プログラムフロー?

謝罪、これは非常に奇妙な疑問に思えるかもしれません。 haskellでの私の経験は、通常、再帰的に進行する関数を記述しています(繰り返しごとにいくつかのデータ要素が減少します)。しかし、私はデータの一部に対してそれぞれ何らかの処理を行う一連の関数を持っており、呼び出しメソッドに各ステージを含めることを望んだ

(擬似コード)

myFunc1 :: Something1 -> Something2

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

return Something2

しかし、これが可能なのかどうかはわかりません。私は単純に愚かなものを持っていなければなりません:

myFunc4(myFunc3(myFunc2(MyFunc1(Something1)))) ?

編集:上記の行は、確かに正しいことはできません!

4

2 答え

関数呼び出し演算子を使用する $

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
8
追加された
myfunc2のみが起こった場合は、条件付き(IF)節に依存しますか?
追加された 著者 user997112,
@ user997112: if - else の場合に let を使用するか、カスタムコンビネータを定義します。または、条件付きロジックを関数内に配置します。
追加された 著者 Fred Foo,
または、合成演算子(。)myFunc4。 myFunc3。 myFunc2。 myFunc1 $ Something1 。くそー、私はあまりにも遅いタイピストです!
追加された 著者 Daniel Fischer,
または、もっと熟達している(理由がわからない場合は、もっと見栄えがよいかもしれません): myFunc4。 myFunc3。 myFunc2。 myFunc1 $ Something1
追加された 著者 luqui,

左から右の読み上げ順序を維持したい場合は、

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

myComplex = Something1 $> myFunc1 .> myFunc2 .> myFunc3 .> myFunc4
3
追加された
ありがとう!それは私が探していたものでした!
追加された 著者 rpax,