Hi all,
I mentioned that
?- current_predicate(make/0).
false.
But, after actually calling make
, SWI-Prolog changes its mind:
?- make.
true.
?- current_predicate(make/0).
true.
I use SWI-Prolog 9.0.4 (threaded, 64 bits) on Raspberry Pi.
Hi all,
I mentioned that
?- current_predicate(make/0).
false.
But, after actually calling make
, SWI-Prolog changes its mind:
?- make.
true.
?- current_predicate(make/0).
true.
I use SWI-Prolog 9.0.4 (threaded, 64 bits) on Raspberry Pi.
The docs say,
Note that current_predicate/1 does not succeed for predicates that can be autoloaded unless they are imported using autoload/2.
and make/0 is autoloaded (see its docs). Many predicates are like this. You have also current_predicate/2.
Thank you Boris.
Now it makes sense. Although, I must admit, I did not even thought that make/0 is not always loaded.
Am I right that any predicate without a remark “Avaliability: built-in” in the doc is actually autoloaded?
“Autoloaded” means something more specific. Did you try to search the documentation yet? Or ask an AI assistant?
The page for make/0 has a link to “(can be autoloaded”) i.e. SWI-Prolog -- Automatic loading of libraries
True. Although I don’t have this “Availability: :- use_module(library(make)). (can be autoloaded)“ remark in the doc when invoked from the prolog REPL as help(make).
Maybe my SWI-Prolog is already dated.