Typoclassopedia私の研究中に私はこの証拠に遭遇しましたが、私の証拠が正しいかどうかわかりません。問題は次のとおりです。
有効な引数に純粋な関数を適用するための何かを述べている交換法則の変種を想像するかもしれません。上記の法律を使用して、そのことを証明:
pure f <*> x = pure (flip ($)) <*> x <*> pure f
どこに "上記の法律" のポイントをに、簡単に次のように
pure id <*> v = v -- identity law
pure f <*> pure x = pure (f x) -- homomorphism
u <*> pure y = pure ($ y) <*> u -- interchange
u <*> (v <*> w) = pure (.) <*> u <*> v <*> w -- composition
私の証明は次のとおりです。
pure f <*> x = pure (($) f) <*> x -- identical
pure f <*> x = pure ($) <*> pure f <*> x -- homomorphism
pure f <*> x = pure (flip ($)) <*> x <*> pure f -- flip arguments
最後のステップは、単一のエタ拡張で十分に簡単ですね。 '($ f)。 ($ x)≡\ x - >($ x)$ f≡\ x - > f $ x≡f'である。 – leftaroundabout
@leftaroundaboutええと、私は実際に演習の解決策を使ってTypoclassopediaの投稿を書いています。この説明はその投稿のためです。最初にそれを把握するのに苦労している人のために説明しました。 btw、編集のおかげで、はるかに良く見えます。 –