Adds a compiled clause to the database. The clause will be added at the end of all existing clauses in the database.


Clause [MOD]
callable A valid Prolog clause.


If a predicate is multifile (compiled, interpreted-static or dynamic) multifile_assertz/1 can be used to add a clause, Clause, to the end of the predicate. In a runtime system (see sap-srs), it is an error to multifile_assertz a compiled clause because the compiler is not available.

If predicate is undefined at the time of the multifile_assertz, it is set to be compiled (in the Development System) or dynamic (in a Runtime System). In either case the predicate is also set to be multifile.

[Note that in runtime systems compile(File) actually loads the file as all_dynamic.]

Except for the case of a multifile dynamic predicate, the effect of multifile_assertz if used on a predicate that is currently running will not be well-defined. The new clause may or may not be seen on backtracking. If you want the proper semantics, use assertz instead.


Same as assert/1.

See Also

abolish/[1,2], assertz/1, dynamic/1, multifile/1, sap-srs sap-rge