【问题标题】:What is the proper name for (>>) operator in Haskell?Haskell 中 (>>) 运算符的正确名称是什么?
【发布时间】:2021-07-11 08:03:16
【问题描述】:

一元(>>) :: Monad m => m a -> m b -> m b 运算符是众所周知的。我想知道它叫什么名字。

  • this Haskell tutorialthis one 中,他们将此运算符称为“then”。这是一个不错的名字,就 do-notation 而言,它非常有意义。一个小缺点是与三元运算符的 then 发生冲突。
  • 在我的母语 Haskell 传统中,我们称其为 "усечённое связывание",翻译为 "truncated bind"。这在俄语中可能有点不方便,因为它与 "bind's section" 的翻译有冲突,但我在英语中没有看到任何类似的问题。有没有人在英文中使用这样的名字或类似的名字?一种诗意的表达方式可能是"frustum"

有没有人为操作员使用任何其他名称?哪个是首选?

【问题讨论】:

  • 为了消除歧义,我把它读作“然后”。
  • "sequence"是名字"then"是读码时的读音。
  • @ThomasM.DuBuisson 坦率地说,我最不喜欢“序列”,因为还有另一个函数叫做"sequence",它经常出现在单子代码中。与其他人不同的是,这次碰撞似乎很严重。
  • 关键是将它与<*区分开来,一种或另一种。我对>>*> 使用“then”或“and then”,对<* 使用“before”。

标签: haskell functional-programming monads terminology


【解决方案1】:

我们称它为“短鱼”。 (因为>=> 是“鱼”,而>> 是较短的身体。)

或者可能是“fsh”,一种没有i内部部分的“鱼”。

由于我看到(.).(.) 运算符被某个名称调用,我可能还建议您使用另一个名称调用>>,您可以通过浏览这篇文章的编辑历史发现...

另一种可能性是...... chicane 运算符

【讨论】:

  • @ZhiltsoffIgor,我建议了第三个可能的名字。
  • 我喜欢你的思维方式;)。
  • 我不认为 StackOverflow 是发明名字的好地方。
  • @ZhiltsoffIgor,我想我有“明确”的答案。
猜你喜欢
  • 2013-08-06
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
  • 2011-10-03
  • 2010-12-07
  • 1970-01-01
相关资源
最近更新 更多