gpt4 book ai didi

haskell - 类型类法律是根据什么平等概念编写的?

转载 作者:行者123 更新时间:2023-12-04 18:10:56 25 4
gpt4 key购买 nike

Haskell 类型类通常带有规律。例如,Monoid 的实例are expected观察 x <> mempty = mempty <> x = x .
类型类法则通常用单等号 ( = ) 而不是双等号 ( == ) 编写。这表明类型类法律中使用的平等概念不同于 Eq 的概念。 (这是有道理的,因为 Eq 不是 Monoid 的父类(super class))
搜了一圈,没找到关于=含义的权威说法。在类型分类法中。例如:

  • Haskell 2010 report里面甚至没有“法律”这个词
  • 与其他 Haskell 用户交谈时,大多数人似乎认为 =通常意味着外延相等或替代,但基本上取决于上下文。没有人为此声明提供任何权威来源。
  • Haskell wiki article on monad laws声明 =是扩展的,但是,再次,未能提供来源,我无法找到任何方式联系相关编辑的作者。

  • 问题 , 那么: = 的语义是否有权威来源或标准?在类型类法律中?如果是这样,它是什么?此外,是否有示例说明 = 的预期含义?是不是特别有异国情调?

    (附带说明一下,扩展处理 = 可能会变得很棘手。例如,有一个 Monoid (IO a) 实例,但并不清楚 IO 值的扩展相等性是什么样的。)

    最佳答案

    我怀疑大多数人使用 =Fast and Loose Reasoning is Morally Correct 开始表示“道德平等” ,您可以将其视为已定义的外延相等。
    但这里没有硬性规定。有很多图书馆,很多作者,如果你选择任何两个作者,他们可能有一些关于 = 的小细节。他们不同意。

    关于haskell - 类型类法律是根据什么平等概念编写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71258709/

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