Was ist die allgemeine Bezeichnung für eine Funktors promote
mit einer Struktur ähnlich der Funktion Quick Check, das heißt eine Funktion der Form:Was ist der allgemeine Fall der Promotion-Funktion von QuickCheck?
promote :: (a -> f b) -> f (a -> b)
(dies ist die Umkehrung von flip $ fmap (flip ($)) :: f (a -> b) -> (a -> f b)
). Gibt es überhaupt irgendwelche Funktoren mit solch einer Operation, außer (->) r
und Id
? (Ich bin sicher, dass es da sein muss). Googeln 'Quickcheck promote' zeigte nur die QuickCheck-Dokumentation, die promote
in keinem allgemeineren Kontext AFAICS gibt; Suche nach SO für "Quickcheck promote" führt zu keinen Ergebnissen.
Ist ['sequenceA'] (http://hackage.haskell.org/package/base-4.7.0.1/docs/Data-Traversable.html#v:sequenceA) relevant? –
Lass mich sehen. Wenn wir in den Typ von 'sequenceA' einwechseln, würden wir' t = (->) a' und 'f = f' erhalten. Wenn also "(->) a" eine "Traversable" -Instanz hätte, würde diese Funktion für alle "a" existieren. Ich denke 'Traversable ((->) a)' erfordert '(Bounded a, Enum a)' von oder das Äquivalent, obwohl. –
Für was es wert ist, bietet die Paketfamilie [universum] (http://hackage.haskell.org/package/universe) die [erforderliche 'Traversable'-Instanz] (http://hackage.haskell.org/package/universe -reverse-instances-1.0/docs/src/Datenuniverse-Instanzen-Traversable.html). –