Dies ist ein Follow-up zu einem answer zu meiner vorherigen Frage.Beispiele von Funktoren Zusammensetzung
Wir wissen, dass Funktoren komponieren. Ich kann eine Zusammensetzung von functors List[_]
und Option[_]
schreiben scalaz
wie folgt aus:
import scalaz._, Scalaz._
scala> val flist = Functor[List]
flist: scalaz.Functor[List] = [email protected]
scala> val foption = Functor[Option]
foption: scalaz.Functor[Option] = [email protected]
scala> flist compose foption
res0: scalaz.Functor[[α]List[Option[α]]] = [email protected]
scala> val f = flist compose foption
f: scalaz.Functor[[α]List[Option[α]]] = [email protected]
scala> val os: List[Option[Int]] = Some(1) :: Some(2) :: None :: Nil
os: List[Option[Int]] = List(Some(1), Some(2), None)
scala> f.map(os) {_ + 1}
res1: List[Option[Int]] = List(Some(2), Some(3), None)
Ist es der richtige Weg functors mit scalaz
zu komponieren?
Konnten Sie ein real-life Beispiel einer Funktorzusammensetzung geben?
Wiederholen Sie Ihre bestehende Frage nicht? http://stackoverflow.com/questions/31284131/how-to-simplify-nested-map-calls – ZhekaKozlov
Teilweise. Ich kann jetzt Funktoren komponieren. Danke für deine Antwort, nebenbei :) Jetzt interessiere ich mich für _real-life_ Beispiele für Funktorkomposition. – Michael
Ist eine Option in einer Liste nicht gut genug? – ZhekaKozlov