ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  ANSI Common Lisp   14 Conses   14.2 Dictionary of Conses

14.2.13 tree-equal Function

Syntax:
tree-equal tree-1 tree-2 &key test test-not    generalized-boolean

Arguments and Values:
tree-1 - a tree.

tree-2 - a tree.

test - a designator for a function of two arguments that returns a generalized boolean.

test-not - a designator for a function of two arguments that returns a generalized boolean.

generalized-boolean - a generalized boolean.

Description:
tree-equal tests whether two trees are of the same shape and have the same leaves. tree-equal returns true if tree-1 and tree-2 are both atoms and satisfy the test, or if they are both conses and the car of tree-1 is tree-equal to the car of tree-2 and the cdr of tree-1 is tree-equal to the cdr of tree-2. Otherwise, tree-equal returns false.

tree-equal recursively compares conses but not any other objects that have components.

The first argument to the :test or :test-not function is tree-1 or a car or cdr of tree-1; the second argument is tree-2 or a car or cdr of tree-2.

Examples:
 (setq tree1 '(1 (1 2))
       tree2 '(1 (1 2)))  (1 (1 2))
 (tree-equal tree1 tree2)  true
 (eql tree1 tree2)  false
 (setq tree1 '('a ('b 'c))
       tree2 '('a ('b 'c)))  ('a ('b 'c)) 
 ((QUOTE A) ((QUOTE B) (QUOTE C)))
 (tree-equal tree1 tree2 :test 'eq)  true

Exceptional Situations:
The consequences are undefined if both tree-1 and tree-2 are circular.

See Also:
equal, Section 3.6 Traversal Rules and Side Effects

Notes:
The :test-not parameter is deprecated.

Allegro CL Implementation Details:
None.

Home Previous Up Next Table of Contents Index
© Franz Inc. All Rights Reserved - File last updated 2022-07-25