我正在学习Haskell,在互联网上我找到了来自Philip Wadler的论文.
我读它并且根本不理解,但它以某种方式连接到多态函数.
例如:
polyfunc :: a -> a -> a
Run Code Online (Sandbox Code Playgroud)
它是任何类型的多态函数.
这个例子的自由定理是什么polyfunc
?
我觉得如果我真的理解那篇论文,那么我写的任何代码都会被上帝合着.
我对这个问题的最好猜测是,所有polyfunc
可以做的是要么总是返回第一个参数,要么总是返回第二个参数.所以实际上只有两个实现polyfunc
,
polyfuncA a _ = a
polyfuncB _ b = b
Run Code Online (Sandbox Code Playgroud)
本文为您提供了证明该声明的方法.
这是一个非常重要的概念.例如,我以前参与过数据质量研究.这个自由定理说没有能从两个任意数据中选择最佳数据的函数.我们必须了解更多.实际上,我很惊讶地发现有些人愿意忽略它.
归档时间: |
|
查看次数: |
176 次 |
最近记录: |