scalaz运算符的可发音名称?

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

一些最常用于我:

  • ?并且?是用于别名mapcontramap分别.虽然,我只使用那些别名作为Functor函数的例子((->) a),因此我称它们为compose.
  • ?|->- 遍历
  • ? (来自scalaz 6) - 底部
  • ?并且|+|- 加上,mappend
  • ? - 零
  • >>= - 绑定
  • >=> - 鱼
  • typesafe相等运算符(===/==) - 只等于/不等于
  • ? (来自scalaz 6) - 双重
  • <*>- 阅读Tony Morris最近的帖子后称其为"星舰运营商"

  • `> =>`是"andThen",因为它是一个翻转的`<= <`("compose") (2认同)

Ben*_*mes 6

|@| 是Applicative Builder运营商:

scala> (some(3) |@| some(4)) { _ + _ }
res1: Option[Int] = Some(7)
Run Code Online (Sandbox Code Playgroud)

我喜欢把它想象成"切尔西包子操作员"(它们是带有方形边缘和螺旋形中间的糕点).

它有一个Unicode变体,?我通常会避免它,因为它在较小的字体大小时呈现为模糊不清的blob.

  • 我更喜欢星球大战的"Admiral Ackbar",或者"喜欢独立的家"的"Macaulay Culkin"运营商. (9认同)