flip
関数は、2引数の関数の引数の順序を逆にします。シンプルsubtract
機能を考えてみましょう。また、引数の型が異なる機能で動作します
(flip subtract) 4 3
-- 3 - 4 = -1
:
subtract :: Int -> Int -> Int
subtract a b = a - b
subtract 4 3
-- 4 - 3 = 1
flip
subtract
機能で呼び出された場合、それはから減算されている番号に変更
を
showIntAndString :: Int -> String -> String
showIntAndString int string = (show int) <> string
showIntAndString 4 "asdf"
-- "4asdf"
(flip showIntAndString) "asdf" 4
-- "4asdf"
あなたがもっと理にかなっている場合は、2つの引数をとる関数をarとして受け入れる関数としてflipを見てみてくださいgumentその結果、他の2つの引数の関数を返す:あなたは、部分的に機能を適用したいときflip
の利用例
flip :: forall a b c.
(a -> b -> c) -- takes a function
-> (b -> a -> c) -- returns a function with flipped arguments
一つは、しかし、あなたが部分的に適用する引数が二位です。次に元の関数flip
を呼び出し、部分的に結果関数を適用することができます。
ありがとうございます。クリアされたようだ。しかし、 'showIntAndString int string =(show int)<> string'行の'(show int) 'の意味は何ですか? – Previn
ようこそ。 'show'はその引数の文字列表現を返します。他の言語の 'toString()'とよく似ています。例えば。 'show 123'は' '123" 'と同じです。 PureScriptの関数と型について詳しくは、[Pursuit](https://pursuit.purescript.org)を参照してください。 'show'のための[こちらのドキュメントはこちら](https://pursuit.purescript.org/packages/purescript-prelude/3.1.0/docs/Data.Show#v:show) – Houndolon