1
私は次のコード<*>の機能はどのように機能しますか?
(,) <$> (+1) <*> (+1)
の関数の結果は、テンキー、A => A型を持つ理由はラムダ計算で把握しようとしています - >(a)の代わりのNum aの=> A - > A - >(a、a)
これは私が持っているものですが、私はひどく間違ったことをしていますか?< *>この方法で接続しましたか?
(\x, y -> (,) x y) <$> (\x -> x + 1) <*> (\x -> x + 1)
-- fmap applies first
(\x y -> (,) ((+1) x) y) <*> (\x -> x + 1) -- substituted the lambda with (+1) for better clarity
-- then goes apply
(\x y -> (,) ((+1) x) ((+1) y))
ラムダのパラメータはどのように統一されていますか?
定義することにより、上この応用例は、f <*> g = \ x - > fx(gx) 'です。ここで 'f'がバイナリの場合、結果は単項関数になります。最後の結果は '\ x - >(、)((+1)x)((+1)x)'でなければなりません。 – chi