(例えばタイプa -> b
の)Applicative
で包み、それに適用される値(上記の例ではタイプa
のすなわち値)、私はそれを適用することができます。申請者に純粋な値を適用するための事前定義Haskell演算子?私は機能を持っている場合は、次のよう
doSomething :: Applicative f => f (a -> b) -> a -> f b
doSomething wrappedFn arg = wrappedFn <*> (pure arg)
私は自分自身にこれをたくさんしていることがわかります。このコードをより簡潔にする標準の定義済み演算子がどこにあるのでしょうか、それとも自分自身を定義する必要がありますか?後者の場合は、従来の名前がありますか?
(http://hayoo.fh-wedel.de/?query =適用+ f +%3D%3E + f +%28a + - %3E + b%29 + - %3E + a + - %3E + f + b) – Alec
'doSomething'はあなたに大変な入力をしません。 '<*>'と 'pure'の呼び出しを' doSomething'の呼び出しで置き換えます。また、重要なことに、引数のいくつかが純粋で、一部がラップされるようにする場合は特に、2+の引数関数に比例しません。私は 'f <*> pure x'と' f <*> x <*> pure y'と書くだけで読みやすくする方が良いと思います。 – amalloy
@Alec - そうです、それは私が探しているようです。なぜホogleはそれを見つけられなかったのだろう... – Jules