Why is there no generic operators for Common Lisp? -


in cl, have many operators check equality depend on data type: =, string-equal, char=, equal, eql , whatnot, on other data types, , same comparison operators (edit don't forget answer these please :) have generic <, > etc ? can make them work object ?)

however language has mechanisms make them generic, example generics (defgeneric, defmethod) described in practical common lisp. imagine same == operator work on integers, strings , characters, @ least !

there have been work in direction: https://common-lisp.net/project/cdr/document/8/cleqcmp.html

i see major frustration, , wall, beginners (of am), specially come other languages python use 1 equality operator (==) every equality check (with of objects make on custom types).

i read a blog post (not monad tutorial, great serie) today pointing this. guy moved clojure, other reasons of course, there 1 (or two?) operators.

so why ? there reasons ? can't find third party library, not on cl21.

on other questions read performance. first, won't apply little code i'll write don't care, , if think have figures make point ?

edit: despite tone of answers, looks there not ;) discuss in comments.

yes have! eq works all values , works time. not depend on data type @ all. looking for. it's is operator in python. must looking for? other ones agree eq when it's t, tend t totally different values have various levels of similarities.

(defparameter *a* "this string") (defparameter *b* *a*) (defparameter *c* "this string") (defparameter *d* "this string") 

all of these equalp since contain same meaning. equalp perhaps sloppiest of equal functions. don't think 2 , 2.0 same, equalp does. in mind 2 2 while 2.0 somewhere between 1.95 , 2.04. see not same.

equal understands me. (equal *c* *d*) nil , good. returns t (equal *a* *c*) well. both arrays of characters , each character same value, 2 strings not same object. happen same.

notice i'm using string here every single 1 of them. have 4 equal functions tells if 2 values have in common, eq tells if same.

none of these type specific. work on types, not generics since around long before added in language. perhaps make 3-4 generic equal functions better ones have?


Comments

Popular posts from this blog

php - Permission denied. Laravel linux server -

google bigquery - Delta between query execution time and Java query call to finish -

python - Pandas two dataframes multiplication? -