Lispex separates atom/identity equality (eq?, eqv?), deep structural equality (equal?), and numeric equality (=).
At a glance
LISPEX
(list (= 2 2.0) (eqv? 2 2.0) (equal? (list 1 2) (list 1 2)))Result
OUTPUT
(#t #f #t)Current guarantees
eq?andeqv?agree on atoms in this profile and compare aggregates by identity.eqv?andequal?are exactness-sensitive: exact2and inexact2.0are different.equal?descends through pairs, vectors, bytevectors, and strings with cycle detection.
Boundaries
=accepts numbers only;==and!=are structural aliases.- Procedure equality never compares procedure bodies structurally.