->
ist ein Infix-Konstruktor. Sie können es mit :
vergleichen - ein Infix-Wert-Konstruktor für Listentyp. Zur Nutzung :
allein wir Klammern um es ausdrückte, so dass es eine Präfix Funktionsanwendung wird:
(:) a b
ist die gleiche wie a : b
Ebenso ist (->) a b
die gleiche wie a -> b
, Art der Funktion a
-b
.
(->) a
ist eine partielle Anwendung von Typkonstruktor und selbst ein Typkonstruktor der Art * -> *
.
Sie können es sich als "ein Konstrukteur von Arten von Funktionen von a" vorstellen. Z.B. (->) Int
ist ein Konstruktor von Arten von Funktionen von Int
. Sie können den vollständigen Funktionstyp erstellen, indem Sie einen anderen Typ übergeben: (->) Int String
ist der Typ der Funktionen von Int
bis String
.
instance Functor (->) a
ist ein Funktors mit fmap
Betrieb eine a -> b
Funktion in eine a -> c
Funktion transformieren. Sie können es mit einer ähnlichen instance Functor (Either a)
vergleichen, die Either a b
zu Either a c
durch Anwendung der fmap
Argument auf Right
Werte.
'sehr suchmaschinen resistant' - nicht für die Suchmaschine SO. Siehe http://stackoverflow.com/q/5310203/11683 – GSerg
Sie haben Recht! Ich denke, ich sollte manchmal überlegen, SO direkt zu suchen, anstatt mich nur auf Google zu verlassen. – drt
Sie können auch nach [SymbolHound] (http://www.symbolhound.com/?q=Functor+%28%28-%3E%29+r%29) suchen. –