undefined_p, undefined_symbol_p

Gamma: Version 4.0
Prev |  | Next

# `undefined_p`, `undefined_symbol_p`

`undefined_p`, `undefined_symbol_p` -- test for undefined types and symbols.

## Syntax

    undefined_p (s_exp)
    undefined_symbol_p (s_exp)

## Arguments

`s_exp`

  Any Gamma or Lisp expression.

## Returns

`t` if the value of `s_exp` is not defined; otherwise `nil`.

## Description

These two functions perform a similar task, checking to see if the `s_exp` is defined. However, they differ in two important ways:

- `undefined_p` examines the value of `s_exp` directly, whereas `undefined_symbol_p` expects the value of `s_exp` to be a symbol, and examines the value of that resulting symbol.

- `undefined_p` evaluates its argument in a protected scope where any "`Symbol is undefined`" errors will be trapped and disregarded. `undefined_symbol_p` evaluates its argument without protection, so it is possible that a "`Symbol is undefined`" error could be thrown if the evaluation of `s_exp` generates such an error.

## Example

        Gamma> a = #xyz
        xyz
        Gamma> undefined_p (a);
        nil
        Gamma> undefined_symbol_p (a);
        t
        Gamma> xyz = t;
        t
        Gamma> undefined_symbol_p (a);
        nil

        Gamma> undefined_p (y);
        t
        Gamma> undefined_symbol_p (y);
        Symbol is undefined: y
        debug 1>

See the GTK: Sending Queries section or the Photon: Sending Queries section of the History Functions chapter in the Cogent Tools Demo and Tutorials book for examples of the `undefined_p` function used in context.

## See Also

Data Types and Predicates

Prev | Home | Next
Data Types and Predicates | Up | Literals

Copyright 1995-2002 by Cogent Real-Time Systems, Inc.