【发布时间】:2021-07-11 08:03:16
【问题描述】:
一元(>>) :: Monad m => m a -> m b -> m b 运算符是众所周知的。我想知道它叫什么名字。
- 在this Haskell tutorial 和this 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