Jos*_*cus 24 functional-programming scala scalaz
在学习Haskell时,我发现这个问题的答案非常有用,因为它将概念与运算符联系起来:常见的Haskell运算符是否有明显的名称?
scalaz有一个等价的字典吗?或者有人可以帮助提供有关他们如何发音自己的scalaz代码的建议?
Noa*_*oah 23
Scalaz碰巧有一个用于Intellij兼容性的模板生成器,它具有很多scalaz运算符的运算符和通用名称,你只需要查看一下代码(并且可能翻译一些unicode):https: //github.com/ scalaz/scalaz/BLOB /发行/ 6.0.4的/ etc /的IntelliJ/livetemplate /生成活,templates.scala
从文件:
method("map", "?", Param("f")),
method("map2", "??", Param("f")),
method("o", "?", Param("f")),
method("oo", "??", Param("f")),
method("|->", "?", Param("f")),
method("bind", "?", Param("f")),
method("plus", "?", Param("a")),
method("appendpure", "\u279C:", Param("a")),
method("pluspure", "\u279D:", Param("a")),
method("sum", "?"),
method("suml", "?"),
method("exists", "?", Param("f")),
method("forall", "?", Param("f")),
method("traversemonoid", "?", Param("f")),
method("join", "?"),
method("contramap", "?", Param("f")),
method("pure", "?"),
function("kleisli", "?", Param("f")),
function("cokleisli", "?", Param("f")),
method("dual", "?"),
method("equal", "?", Param("a")),
method("notequal", "?", Param("a")),
method(">>>", "?", Param("a")),
method("<<<", "?", Param("a")),
function("undefined", "?"),
method("^", "?", Param("a")),
method("conjunction", "?", Param("a")),
method("disjunction", "?", Param("a")),
method("v", "?", Param("a")),
method("<==", "\u21D0", Param("a")),
method("zipstream", "\u0290"),
method("mult", "\u220f"),
function("zero", "?"),
function("x", "×"),
function("=>", "\u21D2"),
method("3", "?", Param("a")),
method("contains", "?", Param("a")),
method("memberof", "?:", Param("a"))
Run Code Online (Sandbox Code Playgroud)
fol*_*one 11
一些最常用于我:
?并且?是用于别名map和contramap分别.虽然,我只使用那些别名作为Functor函数的例子((->) a),因此我称它们为compose.?和|->- 遍历? (来自scalaz 6) - 底部?并且|+|- 加上,mappend? - 零>>= - 绑定>=> - 鱼===和/==) - 只等于/不等于? (来自scalaz 6) - 双重<*>- 阅读Tony Morris最近的帖子后称其为"星舰运营商"|@| 是Applicative Builder运营商:
scala> (some(3) |@| some(4)) { _ + _ }
res1: Option[Int] = Some(7)
Run Code Online (Sandbox Code Playgroud)
我喜欢把它想象成"切尔西包子操作员"(它们是带有方形边缘和螺旋形中间的糕点).
它有一个Unicode变体,?我通常会避免它,因为它在较小的字体大小时呈现为模糊不清的blob.