Learn You a Haskellの例の1つは、次のとおりです。
pure (+) <*> Just 3 <*> Just 5
彼は次のように述べています。
したがって、最初は
pure (+)
、Just (+)
Haskellが関数の型推論を使用して、LHSの関数が型クラスのインスタンスからのものになること<*>
を決定していると仮定しています( RHSで使用しているという事実に基づいて、はです)。pure
Maybe
Applicative
Just 5
Just
Maybe
ただし、メソッドを使用してApplicative Functorに変換したい値があるが、関数をpure
介してすぐに使用することは<*>
ないため、Haskellがどのpure
関数を使用するかを決定できない場合があります。使用する?もしそうなら、どのpure
関数を使用するかをどのように明示的に述べますか?
pure
または、関数の結果が特定のコンテキストで使用されるまで(ある時点で関数にpure
フィードする場合など)、Haskellがどの関数を判別しようとしない場合がありますか?<*>