File: tree-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 (13 lines) | stat: -rw-r--r-- 481 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
S9 LIB  (tree-equal? procedure pair1 pair2)  ==>  boolean

Compare the leaves of two trees PAIR1 and PAIR2 using the predicate
PROCEDURE. TREE-EQUAL? returns #T if the trees have the same structure
and (procedure x1 x2) holds for their pairwise leaves.

(tree-equal? (lambda (x y) #t)
             '(((a . b) (c . d)) (e . f))
             '(((1 . 2) (3 . 4)) (5 . 6)))  ==>  #t

(tree-equal? eqv?
             '((1 . 2) (3 . 4))
             '((1 . 2) (3 4)))              ==> #f