use of org.jpl7.Term in project packages-jpl by SWI-Prolog.
the class FetchLongList method main.
public static void main(String[] args) {
// Prolog.set_default_init_args(new String[] { "libpl.dll", "-f",
// "D:/pcm/bin/pcm.ini", "-g", "pcm_2000" });
Term t = (Term) ((new Query("findall(foo(N,bar),between(1,2308,N),L)")).oneSolution().get("L"));
int i = 0;
while (t.hasFunctor(".", 2)) {
t = t.arg(2);
i = i + 1;
}
System.err.println("got a list of " + i + " members");
}
use of org.jpl7.Term in project packages-jpl by SWI-Prolog.
the class Family method run.
public void run() {
Map<String, Term> solution;
Variable X = new Variable("X");
// --------------------------------------------------
Query q2 = new Query("child_of", new Term[] { new Atom("joe"), new Atom("ralf") });
System.err.println("child_of(joe,ralf) is " + (q2.hasSolution() ? "provable" : "not provable"));
new Query("sleep", new Term[] { new org.jpl7.Integer(delay) }).hasSolution();
// --------------------------------------------------
Query q3 = new Query("descendent_of", new Term[] { new Atom("steve"), new Atom("ralf") });
System.err.println("descendent_of(steve,ralf) is " + (q3.hasSolution() ? "provable" : "not provable"));
new Query("sleep", new Term[] { new org.jpl7.Integer(delay) }).hasSolution();
// --------------------------------------------------
Query q4 = new Query("descendent_of", new Term[] { X, new Atom("ralf") });
solution = q4.oneSolution();
System.err.println("first solution of descendent_of(X, ralf)");
System.err.println("X = " + solution.get(X.name));
new Query("sleep", new Term[] { new org.jpl7.Integer(delay) }).hasSolution();
// --------------------------------------------------
Map<String, Term>[] solutions = q4.allSolutions();
System.err.println("all solutions of descendent_of(X, ralf)");
for (int i = 0; i < solutions.length; i++) {
System.err.println("X = " + solutions[i].get(X.name));
}
new Query("sleep", new Term[] { new org.jpl7.Integer(delay) }).hasSolution();
// --------------------------------------------------
System.err.println("each solution of descendent_of(X, ralf)");
while (q4.hasMoreSolutions()) {
solution = q4.nextSolution();
System.err.println("X = " + solution.get(X.name));
}
new Query("sleep", new Term[] { new org.jpl7.Integer(delay) }).hasSolution();
// --------------------------------------------------
Variable Y = new Variable("Y");
Query q5 = new Query("descendent_of", new Term[] { X, Y });
System.err.println(id + ": each solution of descendent_of(X, Y)");
while (q5.hasMoreSolutions()) {
solution = q5.nextSolution();
System.err.println(id + ": X = " + solution.get(X.name) + ", Y = " + solution.get(Y.name));
new Query("sleep", new Term[] { new org.jpl7.Integer(delay) }).hasSolution();
}
}
use of org.jpl7.Term in project packages-jpl by SWI-Prolog.
the class Query method get1.
private final boolean get1() {
// close the query;
if (Prolog.next_solution(qid)) {
return true;
} else {
// if failure was due to throw/1, build exception term and
// throw it
term_t exception_term_t = Prolog.exception(qid);
if (exception_term_t.value != 0L) {
Term exception_term = Term.getTerm(new HashMap<term_t, Variable>(), exception_term_t);
close();
throw new PrologException(exception_term);
} else {
close();
return false;
}
}
}
use of org.jpl7.Term in project packages-jpl by SWI-Prolog.
the class TestJUnit method testIsJVoid3.
public void testIsJVoid3() {
Term t = Query.oneSolution("X = _").get("X");
assertFalse("_ . isJVoid() fails", t.isJVoid());
}
use of org.jpl7.Term in project packages-jpl by SWI-Prolog.
the class TestJUnit method testTextToTerm2.
public void testTextToTerm2() {
String text1 = "fred(?,2,?)";
String text2 = "[first(x,y),A]";
Term plist = Util.textToTerm(text2);
Term[] ps = plist.toTermArray();
Term t = Util.textToTerm(text1).putParams(ps);
assertTrue("fred(?,2,?) .putParams( [first(x,y),A] )", t.hasFunctor("fred", 3) && t.arg(1).hasFunctor("first", 2) && t.arg(1).arg(1).hasFunctor("x", 0) && t.arg(1).arg(2).hasFunctor("y", 0) && t.arg(2).hasFunctor(2, 0) && t.arg(3).isVariable() && t.arg(3).name().equals("A"));
}
Aggregations