ich für Data.Traversable
in der Dokumentation suchen und stieß auf fmapDefault
- https://downloads.haskell.org/~ghc/latest/docs/html/libraries/base/Data-Traversable.html#g:3Was ist der Punkt von 'fmapDefault' in 'Data.Traversable'?
fmapDefault :: Traversable t => (a -> b) -> t a -> t b
In der Dokumentation, die -
Diese Funktion als Wert für fmap in einer Functor Instanz verwendet werden kann, sofern der Polygonzug definiert ist.
So vermutlich kann es verwendet werden, um eine fmap
für eine Traversable
Instanz abzuleiten. Jedoch hat Traversable
Functor
als eine Oberklasse.
class (Functor t, Foldable t) => Traversable t where
...
So können Sie keine Traversable
Instanz ohne zu definieren, die Functor
Instanz zuerst definieren! Und wo immer Sie eine Traversable
haben, haben Sie Zugriff auf eine fmap
, die (und vielleicht effizienter als) fmapDefault
entspricht.
Also wo würde man fmapDefault
statt der viel vertrauten fmap
verwenden?
"Sie können keine 'Traversable' -Instanz definieren, ohne zuerst die'Functor'-Instanz zu definieren!" Nun, "zuerst" ist so ein skurriler Begriff ... –
Ja, das war ein bisschen wie ein Hirnpupus. Wie angenommen, dass 1 vor 2 kommt, aufgrund von Jahren des prozeduralen Zählens von 0-10. Und dann überlegst du die Frage - was zuerst kommt, "-1" oder "-2" und bist erleuchtet. –