Yes that compareTo doesn't define a total order on your class. I think
you are missing a clause in cond:
(cond
(= sr sr2) 0
(= (.lik sr) (.lik s2)) return something based on quasi-isomorphic
(> (.lik sr) (.lik sr2)) -1
:default 1)
I think you should implement quasi-isomorphic as a compare function
(Comparator), then:
equals:
(and (= lik (.lik other)) (= 0 (compare-quasi-isomorphism tree (.tree
other))))
compareTo:
(let [l (- (.lik sr) (.lik sr2))
q (compare-quasi-isomorphism (.tree sr) (.tree sr2))]
(cond
(and (= l 0) (= q 0)) 0
(not= l 0) l
(not= q 0) q
:default 1))
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en