8

私はドキュメントを見ていてData.Traversable、出会いましたfmapDefault- https://downloads.haskell.org/~ghc/latest/docs/html/libraries/base/Data-Traversable.html#g:3

fmapDefault :: Traversable t => (a -> b) -> t a -> t b

ドキュメントには、次のように記載されています-

traverse が定義されている場合、この関数は Functor インスタンスの fmap の値として使用できます。

したがって、おそらくインスタンスの派生fmapに使用できます。Traversableただし、スーパークラスとしてTraversable持っFunctorています。

class (Functor t, Foldable t) => Traversable t where
    ...

Traversableしたがって、最初にインスタンスを定義せずにインスタンスを定義することはできませんFunctor! そして、どこにいても、Traversableにアクセスできますfmap。これは、 と同等 (そしておそらくより効率的)fmapDefaultです。

fmapDefaultでは、より使い慣れた の代わりに、どこで を使用するのでしょうfmapか?

4

1 に答える 1