Scala 函子合成的例子
这是对我上一个问题的补充 我们知道函子是合成的。我可以使用Scala 函子合成的例子,scala,functional-programming,composition,functor,scalaz,Scala,Functional Programming,Composition,Functor,Scalaz,这是对我上一个问题的补充 我们知道函子是合成的。我可以使用scalaz编写一个由List[\u]和Option[\u]组成的函数,如下所示: import scalaz._, Scalaz._ scala> val flist = Functor[List] flist: scalaz.Functor[List] = scalaz.std.ListInstances$$anon$1@a5f0295 scala> val foption = Functor[Option] fopt
scalaz
编写一个由List[\u]
和Option[\u]
组成的函数,如下所示:
import scalaz._, Scalaz._
scala> val flist = Functor[List]
flist: scalaz.Functor[List] = scalaz.std.ListInstances$$anon$1@a5f0295
scala> val foption = Functor[Option]
foption: scalaz.Functor[Option] = scalaz.std.OptionInstances$$anon$1@51e43ad4
scala> flist compose foption
res0: scalaz.Functor[[α]List[Option[α]]] = scalaz.Functor$$anon$1@94c02b
scala> val f = flist compose foption
f: scalaz.Functor[[α]List[Option[α]]] = scalaz.Functor$$anon$1@610bffa0
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)
用scalaz
组合函子是否正确?你能给出一个函子合成的真实例子吗?假设你有一个字符串列表,其中每个字符串都是一个字符列表。通过组合两个列表函子,可以在字符串列表上得到一个函子。现在可以将字符上的函数(例如toUpper或toLower)映射到字符串列表
这个例子够真实吗?:-)假设您有一个字符串列表,其中每个字符串都是一个字符列表。通过组合两个列表函子,可以在字符串列表上得到一个函子。现在可以将字符上的函数(例如toUpper或toLower)映射到字符串列表
这个例子够真实吗?:-)样例函子合成-合成选项和列表:
有关函子合成的更多详细信息,请参见此处:样本函子合成-带列表的合成选项:
有关函子合成的更多详细信息,请参见此处:示例应用程序函子合成-带列表的合成选项和带选项的列表:
有关函子、应用程序和单子组合的更多详细信息,请参见此处:示例应用程序函子组合-带列表的组合选项和带选项的列表:
有关函子、应用程序和单子组合的更多详细信息,请参见此处:您是否重复您现有的问题?部分地。我现在知道如何合成函子了。谢谢你的回答,顺便说一句:)现在我对函子合成的真实例子很感兴趣。在列表中映射一个选项不够好吗?不:)我需要更多…函子是一个抽象,层次太高,无法给出任何有趣的例子(不同于简单的嵌套列表/选项等)。这就像问“给我一个java.lang.Object的真实例子”:)你不重复你现有的问题吗?部分地。我现在知道如何合成函子了。谢谢你的回答,顺便说一句:)现在我对函子合成的真实例子很感兴趣。在列表中映射一个选项不够好吗?不:)我需要更多…函子是一个抽象,层次太高,无法给出任何有趣的例子(不同于简单的嵌套列表/选项等)。这就像问“给我一个java.lang.Object的真实示例”: