You can use the following, extracted from the user manual: ==========================
*Templates* current_predicate(?predicate_indicator) *Description* current_predicate(Pred) succeeds if there exists a predicate indicator of a defined procedure that unifies with Pred. All user defined procedures are found, whether static or dynamic. Internal system procedures whose name begins with ’$’ are not found. A user-defined procedure is found even when it has no clauses. A user-defined procedure is not found if it has been abolished. To conform to the ISO reference, built-in predicates are not found except if the strict_iso Prolog flag is switched off (section 8.22.1<gprolog046.html#set-prolog-flag/2>). This predicate is re-executable on backtracking. ========================== Then, using more meta-pretapredicates (univ and higher-order call): | ?- current_predicate(N/2), G=..[N,baba,wo], G. G = father(baba,wo) N = father ? ; (31 ms) no Regards, Fernando 2013/10/13 <[email protected]> > Yes, that works fine if you know the predicates in the database, but is it > possible yo find the term that contains a constant without knowing the > predicae?t > Sent from my Verizon Wireless BlackBerry > > -----Original Message----- > From: FERNANDO SAENZ PEREZ <[email protected]> > Sender: [email protected] > Date: Sun, 13 Oct 2013 20:09:13 > To: liubin0314<[email protected]> > Cc: <[email protected]> > Subject: Re: how to get some statements about a constant? > > _______________________________________________ > Users-prolog mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/users-prolog > >
_______________________________________________ Users-prolog mailing list [email protected] https://lists.gnu.org/mailman/listinfo/users-prolog
