(equal statement1 statement2 [tolerance])
Determine whether two statements are the same.
This function compares statement1 and statement2. If they are equal, LISP returns a T; if not, a nil is returned. Whereas the equal function compares lists, the = (equal to operator) function compares numbers and strings.
Examples
Code | Returns |
---|---|
(setq x '(1 2 3 4)) | |
(setq y x) | |
(equal x y) | T |
(equal y '(1 2 3 4)) | T |
The tolerance is the amount that the two expressions are allowed to differ, which is very important when comparing real numbers (which tend to suffer from rounding error). In the following example, the two statements can differ by 0.01:
Code | Returns |
---|---|
(equal 5.6789 5.67 0.01) | T |
NOTE The equal function is not the same as the = (equal to operator) and eq functions. The = function returns T when two numbers or strings are equal. The equal function returns T when two expressions are equal. The eq function returns T when two expressions are bound to the same symbol.