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