XLISP eq

Nyquist / XLISP 2.0 - Contents | Tutorials | Examples | Reference

# eq

Type: | - | predicate function (subr)
Source: | - | xllist.c, xlsubr.c

## Syntax

(eq expr1 expr2)
  exprN - arbitrary Lisp expressions
  returns - T if the expressions eveluate to the same internal value, NIL otherwise

## Description

Two expressions are 'eq' if the expressions are identical. The 'eq' function tests if the results of the evaluated expressions point to the same memory location. T is returned if both expressions evaluate to exactly the same internal value, NIL is returned otherwise.

Integer numbers being = are 'eq' as long as not stored in a CPU register, so the eql function is recommended for testing integers. Also note that arrays, floating-point numbers, lists, and strings are only 'eq' if they are bound as variable values to the same symbol.

## Examples

    (eq 'a 'a)          => T
    (eq 1 1)            => T or NIL
    (eq 1 1.0)          => NIL
    (eq 1.0 1.0)        => NIL
    (eq "a" "a")        => NIL
    (eq '(a b) '(a b))  => NIL
    (eq 'a 34)          => NIL

    (setq a '(a b))     ; set value of A to (A B)
    (setq b a)          ; set B to point to A's value
    (setq c '(a b))     ; set value of C to different (A B)
    (eq a b)            => T
    (eq a c)            => NIL

See also eql, equal, cl:equalp.

Back to Top

Nyquist / XLISP 2.0 - Contents | Tutorials | Examples | Reference