テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

ペアはファンクタ

何に使うのかよく分からないし, どうしてsndの方が変形されるのかも僕には分からないのですが(直感的にはfstの方かと思う. 例えば, Stateだって隠蔽している関数の返り値について, fstの方が値ではないか),

Prelude Control.Applicative Control.Monad> fmap (+100) (1,2)
(1,102)

ペア (a, b) はファンクタであったという驚きを得ました.

では, tuple一般ではどうなのかというと,

Prelude Control.Applicative Control.Monad> fmap (+100) (1,2,3)

<interactive>:8:1:
    No instance for (Functor *1
      arising from a use of `fmap'
    Possible fix:
      add an instance declaration for (Functor *2
    In the expression: fmap (+ 100) (1, 2, 3)
    In an equation for `it': it = fmap (+ 100) (1, 2, 3)

N > 3 では未定義のようです.

ペアがファンクタであることを利用する場面, 利用している箇所があったら教えてください.

あと, コード中のfootnoteっぽい記法を勝手に認識するのやめてください > はてな

*1:,,) t0 t1

*2:,,) t0 t1

広告を非表示にする