Type testing

These predicates test the type associated with a term.

A goal executing any of these predicates simply succeeds or fails; there is no side effect, unification, or error.

1. var/1

var(X) is true iff X is a member of the variable set as defined by the specification.

Templates and modes for the predicate are as follows:

var(@term)

1.1 Example tests

Let's start with some simple tests verifying success of failure of single goals.

alice.tuprolog.SimpleGoalFixture
goalsuccess()
var(foo). false
var(Foo). true
foo = Foo, var(Foo). false
var(_). true

2. atom/1

atom(X) is true iff X is a member of the atom set as defined by the specification.

Templates and modes for the predicate are as follows:

atom(@term)

2.1 Example tests

Let's start with some simple tests verifying success of failure of single goals.

alice.tuprolog.SimpleGoalFixture
goalsuccess()
atom(atom). true
atom('string'). true
atom(a(b)). false
atom(Var). false
atom([]). true
atom(6). false
atom(3.3). false

3. integer/1

integer(X) is true iff X is a member of the integer set as defined by the specification.

Templates and modes for the predicate are as follows:

integer(@term)

3.1 Example tests

Let's start with some simple tests verifying success of failure of single goals.

alice.tuprolog.SimpleGoalFixture
goalsuccess()
integer(3). true
integer(-3). true
integer(3.3). false
integer(X). false
integer(atom). false

4. float/1

float(X) is true iff X is a member of the float set as defined by the specification.

Templates and modes for the predicate are as follows:

float(@term)

4.1 Example tests

Let's start with some simple tests verifying success of failure of single goals.

alice.tuprolog.SimpleGoalFixture
goalsuccess()
float(3.3). true
float(-3.3). true
float(3). false
float(atom). false
float(X). false

5. atomic/1

atomic(X) is true if X is an atom, integer or float, and is false if X is a variable or a compound term, w.r.t every set as defined by the specification.

Templates and modes for the predicate are as follows:

atomic(@term)

5.1 Example tests

Let's start with some simple tests verifying success of failure of single goals.

alice.tuprolog.SimpleGoalFixture
goalsuccess()
atomic(atom). true
atomic(a(b)). false
atomic(Var). false
atomic(6). true
atomic(3.3). true

6. compound/1

compound(X) is true iff X is a member of the compound term set as defined by the specification.

Templates and modes for the predicate are as follows:

compound(@term)

6.1 Example tests

Let's start with some simple tests verifying success of failure of single goals.

alice.tuprolog.SimpleGoalFixture
goalsuccess()
compound(33.3). false
compound(-33.3). false
compound(-a). true
compound(_). false
compound(a). false
compound(a(b)). true
compound([]). false
compound([a]). true

7. nonvar/1

nonvar(X) is true iff X is not a member of the variable set as defined by the specification.

Templates and modes for the predicate are as follows:

nonvar(@term)

7.1 Example tests

Let's start with some simple tests verifying success of failure of single goals.

alice.tuprolog.SimpleGoalFixture
goalsuccess()
nonvar(33.3). true
nonvar(foo). true
nonvar(Foo). false
foo = Foo, nonvar(Foo). true
nonvar(a(b)). true

8. number/1

number(X) is true if X is an integer or float, and is false if X is a variable, an atom or a compound term, w.r.t every set as defined by the specification.

Templates and modes for the predicate are as follows:

number(@term)

8.1 Example tests

Let's start with some simple tests verifying success of failure of single goals.

alice.tuprolog.SimpleGoalFixture
goalsuccess()
number(3). true
number(3.3). true
number(-3). true
number(a). false
number(X). false

Run the tests!


The results of the tests for Type testing are as follows:

fit.Summary