[ Syntax Settings | Reference Manual | Alphabetic Index ]

current_struct(?Name, -Struct)

Succeeds if Name is the name of a currently visible structure and Struct is its specification
Variable or atom
Variable or structure.


Used to retrieve the definition of a defined structure, or to enumerate all visible structure definitions.

Visible structures are those which have either been declared locally, exported, or which have been imported or reexported from another module.

Modes and Determinism


This predicate is sensitive to its module context (tool predicate, see @/2).

Fail Conditions

Name is not the name of a visible structure definition


(5) type error
Name is neither variable nor atom.
(5) type error
Struct is neither variable nor structure.


    :- local struct(employee(name,age,salary)).

    ?- current_struct(employee, Spec).
    Spec = employee(name, age, salary)

    ?- current_struct(Name, Spec).
    Name = employee
    Spec = employee(name, age, salary)
    More (0.00s cpu) ? ;

    Name = suspend
    Spec = suspend(inst, constrained, bound)
    More (0.00s cpu) ? ;

    No (0.00s cpu)

    ?- current_struct(book, Spec).
    No (0.00s cpu)

See Also

local / 1, export / 1, struct / 1