In CL, we have many operators to test for equality, which depend on the type of data: =, string-equal, char=, then equal, eqland still do, and so on for other types of data, and the same goes for the comparison operators ( edit sure to answer it, please :) do we have common <, >etc.? can we make them work for another object?)
However, there are mechanisms in the language to make them generalized, such as generics (defgeneric, defmethod) , as described in Practical Common Lisp. I very well imagine the same operator ==that will work on integers, strings and characters, at least!
Work in this direction: https://common-lisp.net/project/cdr/document/8/cleqcmp.html
I see this as a serious disappointment and even a wall for beginners (of which I am), especially we who come from other languages such as python, where we use one equality operator ( ==) for each equality check (using objects to do this is on custom types).
I read a blog post (not a monad tutorial, great series) calling it. The guy moved to Clojure, for other reasons too, of course, where is there one (or two?) Operators.
So why is that so? Are there any good reasons? I can’t even find a third-party library, not even on CL21. edit : cl21 has such generic operators, of course.
In other SO issues, I read about performance. Firstly, this will not apply to the small code that I will write, so I don’t care, and if you think so, do you have numbers to make your point?
edit : despite the tone of the answers, there seems to be no ;) We discuss in the comments.