The built-in predicates in Strawberry Prolog provide a one-step way to implement things that are either impossible or just too inefficient to program in the language itself.
Side effects
The built-in predicates in Strawberry Prolog also provide the facility
to program actions other than just the working of the interpreter as a
database engine. These actions have effect on the outer world, relative
to Strawberry Prolog, and are not subject to 'undoing' in the way, say,
variable instantiation is. That is why built-in predicates are often said
causing side effects .