Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 为什么没有>=&燃气轮机;A的半群=>;在斯卡拉兹读硕士?_Scala_Scalaz_Kleisli_Semigroup - Fatal编程技术网

Scala 为什么没有>=&燃气轮机;A的半群=>;在斯卡拉兹读硕士?

Scala 为什么没有>=&燃气轮机;A的半群=>;在斯卡拉兹读硕士?,scala,scalaz,kleisli,semigroup,Scala,Scalaz,Kleisli,Semigroup,这是我上一篇文章的后续文章 Kleisli定义了两个运算符(然后)。=>对我来说看起来很自然,我不明白A=>M[A]的半群是如何构成的,但是组成了(或者我怀疑唯一真正的答案是数学传统。两者在a=>a中是等价的,不是吗?所以这只是一种惯例,比如矩阵乘法被定义为行-列而不是列-行。谢谢,我明白了。我想知道,如何实现smth。比如:假设我有一个函数子函数(名称:String):XmlNode=>Option[XmlNode]。我想编写列表(“a”、“b”、“c”).map(name=>child(na

这是我上一篇文章的后续文章


Kleisli
定义了两个运算符
(然后)。
=>
对我来说看起来很自然,我不明白
A=>M[A]的半群是如何构成的,但是
组成了
(或者
我怀疑唯一真正的答案是数学传统。两者在
a=>a
中是等价的,不是吗?所以这只是一种惯例,比如矩阵乘法被定义为行-列而不是列-行。谢谢,我明白了。我想知道,如何实现smth。比如:假设我有一个函数
子函数(名称:String):XmlNode=>Option[XmlNode]
。我想编写
列表(“a”、“b”、“c”).map(name=>child(name)).foldMap(…)
来获取通过路径
“a/b/c”
返回节点的函数。现在我需要反转列表:(这似乎是完全多余的。`是的,在这种情况下,
=>
似乎与操作的作用更为接近。我可能会跳过幺半群,直接使用
=>
。或者,也可以只定义这样一个幺半群:
monoid.instance({node=>Some(node)
(还不确定如何正确操作)并将其传递到
文件夹地图
。我可能会问一个新问题。
val f: Int => Int = _ + 1
val g: Int => Int = _ * 10
scala> (f andThen g)(3) == g(f(3))
res0: Boolean = true

scala> (f compose g)(3) == f(g(3))
res1: Boolean = true