Ist es möglich, eine beliebige Funktion mit einem Enumerator oder EnumeratorM zu komponieren, so dass jedes einzelne Datenelement, das in den iteratee geschoben wird, zuerst vorverarbeitet wird, indem die Funktion?Compose-Funktion mit Enumerator
5
A
Antwort
0
Mit Scalaz 6 mindestens, nein - nicht, wenn die Funktion einen Rückgabetyp hat, der sich von seinem Argumenttyp unterscheidet (und kein Subtyp von), weil der Typ EnumeratorM
es nicht erlaubt, den Eingabetyp zu ändern des Iteratees.
Allerdings ist es möglich, „Pre-compose“ beliebige Funktionen mit einem iteratee, so dass ich denke, das ist der Weg zu gehen. Könnte vielleicht auch einen Enumerate verwenden, aber diese Abstraktion ist in Scalaz 6 nicht enthalten.
Es ist meine eigene Schuld, dass ich die Tags nicht gelesen habe, bevor ich eine Play 2.0-Antwort gegeben habe, aber Sie könnten expliziter über die iteratee-Bibliothek sein. wieder verwenden (und die Version, die ich nehme, ist 6, seit Sie 'EnumeratorM' erwähnen). –