我看了一下堆栈溢出 非平凡的懒惰评价,然后找到了 Keegan McAllister 的演示文稿: 为什么要学 Haskell。在幻灯片8中,他展示了最小函数,定义为:
minimum = head . sort
并指出它的复杂性是 O (n)。我不明白为什么说复杂度是线性的,如果按替换排序是 O (nlogn)。文章中提到的排序不能是线性的,因为它不假设任何关于数据的东西,因为它是线性排序方法(如计数排序)所需要的。
懒惰评价在这里扮演了一个神秘的角色吗? 如果是的话,它背后的原因是什么?