gpt4 book ai didi

haskell - 为什么 `mappend` 中缀别名是 `<>` 而不是 `+` ?

转载 作者:行者123 更新时间:2023-12-04 16:27:17 25 4
gpt4 key购买 nike

在 Haskell 中,为什么 mappend 的中缀别名是(来自类(class) Monoid)<>而不是 + ?代数类(class) +通常用于幺半群的二元运算符。

最佳答案

函数+特定于数字,而且,它只是为数字实现 Monoid 的一种方法( * 同样有效)。同样,对于 bool 值,使用 && 同样有效。和 || .使用符号 +表明 Monoids 是关于加法的,而实际上它们只是关于任何关联运算。

确实,至少根据我的经验,人们可能会使用 mappend以类似于加法的方式:连接列表或向量,采用集合或映射的并集等。然而,Haskell 的思维方式更倾向于通用性和对数学原理的坚持,而不是(可以说)更直观的东西。在我看来,考虑 mappend 当然是合理的。作为一种一般性的补充,并在不是的情况下进行调整。

关于haskell - 为什么 `mappend` 中缀别名是 `<>` 而不是 `+` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794894/

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