我正在学习Haskell,在互联网上我发现是Philip Wadler的paper
我读了它,一点也不了解,但是它以某种方式连接到了多态函数。

例如:

polyfunc :: a -> a -> a


它是任何类型的多态函数。

关于示例polyfunc的自由定理是什么?

最佳答案

我觉得,如果我真的理解那篇论文,那么我写的任何代码将由上帝共同编写。

我对此问题的最佳猜测是,所有polyfunc可以执行的操作要么总是返回第一个参数,要么总是返回第二个参数。因此,实际上只有两个polyfunc实现,

polyfuncA a _ = a
polyfuncB _ b = b


本文为您提供了证明这一主张的方法。

这是一个非常重要的概念。例如,我之前曾参与数据质量研究。这个自由定理说,没有函数可以从任意两个数据中选择最佳数据。我们必须知道更多。实际上,我很惊讶地发现有些人愿意忽略它,这真是理所当然。

10-06 10:54