gpt4 book ai didi

haskell - monad 运算符名称的继承

转载 作者:行者123 更新时间:2023-12-02 13:52:48 25 4
gpt4 key购买 nike

我目前正在阅读范畴论基础知识,并尝试从语义上理解 Haskell 分配给 monad 操作的名称。

我所了解的所有 Material 都将 return 作为单位映射,将 join 作为乘法映射(我同意名称“join”)。对于 >>=bind 我什至(还)没有找到数学中常见的名称。相反,我遇到了它的翻转形式,lift 或 -*,这对我来说是有意义的。

实际问题(tldr):

  1. 为什么使用“返回”而不是“单位”?
  2. 为什么要创造“bind”这个术语?
  3. 数学世界里有“绑定(bind)”这个名字吗?
  4. 名称“bind”和“return”应该暗示什么语义?

最佳答案

这两个名字都来自编程,而不是数学。 return ,用作 do 的最后一条语句表达式,使其看起来非常命令式: do {do_something; return result}bind的名字来自于它的do翻译:action >>= \x -> something翻译为do {x <- action; something} ,看起来像 x绑定(bind)到从 action 返回的值.

至于bind数学世界中的类比,谷歌“Kleisli Triple”。

关于haskell - monad 运算符名称的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24456462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com