3 ms·
In Haskell, the facetious answer is simple: No instance for (Eq (a0 -> a0)) arising from a use of `==' That is, functions aren't comparable (for equality,
by cbd1984 11y ago
In Haskell, the facetious answer is simple:
No instance for (Eq (a0 -> a0)) arising from a use of `=='
That is, functions aren't comparable (for equality, anyway), so the type system won't allow you to compare them.
The better answer is either "Look at their type signatures" or "See if they evaluate to the same values when given the same input"; the first is trivial, the second won't, in general, terminate, so you need a more nuanced conception of "equality" to apply in this instance. This is non-trivial to come up with.
Kent Pitman has an interesting essay on this problem from a Common Lisp perspective: "The Best of Intentions: EQUAL Rights—and Wrongs—in Lisp"
http://www.nhplace.com/kent/PS/EQUAL.html http://www.nhplace.com/kent/PS/EQUAL.html
- codygman 11y agoWhy the down votes?