gpt4 book ai didi

Haskell 单子(monad) : etymology versus meaning?

转载 作者:行者123 更新时间:2023-12-04 14:03:02 25 4
gpt4 key购买 nike

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。


9年前关闭。







Improve this question




当我对某个概念有所了解时,我发现无法看到概念名称的明显词源与我认为我对该概念的理解有何关联,这非常令人不满意。如果我看不到这种联系,我会觉得这个名字试图传达一些我尚未发现的重要见解。

Monad:源自希腊语,意为统一。周一=一; ad = 包含一定数量的组或单元。这构成“由一个事物组成的组或单元”。

http://www.haskell.org/haskellwiki/All_About_Monads说:

“monad 是一种根据值和使用这些值的计算序列来构建计算的方法。Monad 允许程序员使用顺序构建 block 来构建计算,这些构建 block 本身可以是计算序列。” ...“其他单子(monad)用于构建执行 I/O、具有状态、可能返回多个结果等的计算”

没有什么关于一体性的。

http://www.haskell.org/haskellwiki/Monad声称 monad 一词中的 oneness 是指 monad 将产生的一种输出。但是鉴于任何函数都会产生一个输出(并且上面的引用资料说“可能返回多个结果”,更不用说带外/错误结果),并且没有关于“组或单元”的任何内容,这种解释似乎没有说服力.

有更好的解释吗?

[编辑:回应“离题”标志。我的问题不是关于“monad”这个词本身的词源。它是关于 monad 的 Haskell 概念,以及 monad 这个词的根源如何告诉我们这个概念,或者实际上可能误导我们理解这个主题。鉴于 monad 在 Haskell 中是一个众所周知的难以沟通的概念,这当然是一个关于编程的问题。

受访者关于“monad”的根源如何与手头的主题相关的不同建议强化了这是一个突出的问题,包括观察到 Haskell 自己的文档中的解释是高度可疑的。

也就是说,我对给出的答案非常满意(谢谢!),所以不需要重新打开这个话题。但我主张不要将它移到别处,以便其他对重要的 Haskell 概念有同样困惑的人可以在这里找到它。]

最佳答案

Is there some better explanation?



简短的回答:不,真的没有。

稍微简短的回答:它几乎肯定与“monoid”有关,与“monad”的任何其他用途无关(至少有两个),而且这个词是在数学家聚会上创造的,所以甚至可能没有书面来源,这是该术语的第一次使用。

带有引用和引文的更长答案: The one I wrote here.

顺便说一句,维基上关于所谓含义的说法对我来说似乎很可疑。

关于Haskell 单子(monad) : etymology versus meaning?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14090183/

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