有人可以解释一下Scala的这一行编码吗

比拉杰·达卡尔

我真的很难理解这行代码。有人可以详细解释一下吗?

def sequence[A](aos: List[Option[A]]): Option[List[A]] =
  aos.foldRight[Option[List[A]]](Some(Nil))((a,acc) => map2(a,acc)(_ :: _))
丹尼斯·罗斯卡

仅用一小段代码很难解释,但我会尝试一下。

说明:该函数试图在 上实现sequence操作List[Option[A]]这种操作是FP(我建议你看一下在发现一个普遍的实现非常常见的猫科动物,一般将其转换类型F[G[A]]G[F[A]]它专门转换,在你的榜样List[Option[A]]Option[List[A]]

更新:您必须指定Option[List[A]]以确保编译器将推断出正确的类型。由于 ADT 在 Scala 中的实现方式,如果您不指定返回类型,编译器将推断Some[List[Nothing]]为您的返回类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有人可以解释一下这一切意味着什么吗?

有人可以解释一下这些行代码如何工作吗?

为什么我的嵌套循环没有继续到下一行代码?有人可以解释一下吗?

有人可以解释一下这段代码有什么问题吗?

有人可以解释一下“ for(;;)”这样的循环语法吗?

有人可以解释一下Java中的.getClass()方法吗?

有人可以解释一下“索引技巧”吗?

有人可以解释一下这段angularjs指令代码吗?

有人可以解释一下匹配识别中的以下条款吗?

有人可以解释一下这个回文解决方案吗?

有人可以分解这个匿名函数并解释一下吗?

有人可以解释一下此代码中如何使用移位吗?

有人可以解释一下这种递归的工作方式吗?

有人可以解释一下此Java代码吗?

有人可以解释一下.reduce功能代码吗?

在 Python 中登录。有人可以解释一下吗?

有人可以解释一下“ nx.connected_components()”的作用吗?

有人可以解释一下矩阵(安德森先生)吗?

有人可以解释一下以下Java递归代码段吗?

有人可以解释一下Mac OS X中的ifconfig输出吗?

有人可以详细解释一下SOLR requestHandlers和responseWriters吗?

有人可以解释一下这行代码吗

有人可以解释一下Linux库的命名吗?

有人可以向我解释一下:“ create({email:emailArg} = {}){}”吗?

有人可以解释一下Spring Security BasePermission.Create吗?

有人可以解释一下lspci -vv输出吗?

有人可以解释一下这个代码片段吗

有人可以解释一下这个宏定义吗?

有人可以解释一下准备好的陈述吗?