Statt fmap
, der eine Funktion auf einen Wert-in-a-Funktors gilt:Gibt es einen Namen für diese Funktion oder dieses Muster?
fmap :: Functor f => (a -> b) -> f a -> f b
I eine Funktion erforderlich, wo der Funktors eine Funktion hat, und der Wert ist klar:
thing :: Functor f => f (a -> b) -> a -> f b
aber ich can't find one.
Wie heißt dieses Muster, wo ich eine Funktion in einem Funktor (oder in einer Anwendung oder in einer Monade) auf einen einfachen Wert anwende?
Ich habe es bereits implementiert, ich verstehe einfach nicht ganz, was ich getan habe und warum es in den Standardbibliotheken noch nicht so eine Funktion gab.
Ist das nicht nur ein Spezialfall eines Applicative? Wie 'func <*> reiner Wert'? –
Beachten Sie, dass der Typ "ap" und "<*>" sehr ähnlich ist. Obwohl ich keine entsprechende 'Functor'-Version sehe, und dies kann ohne Annahme von' Applicative's oder 'Monad's implementiert werden:' sache fs x = fmap (\ f -> fx) fs' –
Ja, sagt Lambdabot 'Ding = (.pure). (<*>) 'oder' thing = flip (fmap. Flip id) '. Aber ich verstehe, dass dies nicht das ist, was du wissen willst :) –