File: equalp

package info (click to toggle)
scheme9 2025.08.12-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,080 kB
  • sloc: lisp: 16,752; ansic: 11,869; sh: 806; makefile: 237; sed: 6
file content (18 lines) | stat: -rw-r--r-- 674 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
R4RS 6.2  (equal? object1 object2)  ==>  boolean

EQUAL? recursively compares the contents of pairs, vectors, and
strings, applying eqv? on other objects such as numbers and symbols.
A rule of thumb is that objects are generally EQUAL? if they print
the same. EQUAL? may fail to terminate if its arguments are circular
data structures.

(equal? 'a 'a)               ==>  #t
(equal? '(a) '(a))           ==>  #t
(equal? '(a (b) c)
        '(a (b) c))          ==>  #t
(equal? "abc" "abc")         ==>  #t
(equal? 2 2)                 ==>  #t
(equal? (make-vector 5 'a)
        (make-vector 5 'a))  ==>  #t
(equal? (lambda (x) x)
        (lambda (y) y))      ==>  unspecified