Я использую jpl для соединения Java и пролога. Я пытаюсь обрабатывать списки прологов в Java. Мой код пролога при выполнении возвращает список, подобный следующему
L = [38, '(60)', '48^10', '36^6^58']
Теперь я пытаюсь обработать этот вывод в Java, используя следующий код
import jpl.Integer;
import jpl.Query;
import jpl.Variable;
import jpl.JPLException;
import jpl.Term;
import java.awt.List;
import java.lang.Number;
import java.util.Hashtable;
import java.util.Iterator;
public class Family
{
int num1;
public static void main( String argv[] )
{
String t1 = "consult('Test.pl')";
Query q1 = new Query(t1);
System.out.println( t1 + " "
+ (q1.hasSolution() ? "succeeded" : "failed") );
String t4 = "main(X)";
Query q4 = new Query(t4);
System.out.println( "first solution of " + t4 + ": X = "
+ q4.oneSolution().get("X"));
Term listTerm = (Term) q4.oneSolution().get("X");
Term firstListItem = listTerm.arg(1);
System.out.println("" + firstListItem);
}
}
При выполнении этого мы получаем первое решение запроса, которое
X = '.'(38, '.'('(60)', '.'('48^10', '.'('36^6^58', []))))
38
И я могу распечатать первый элемент списка, который является «38»
В то же время я не могу обработать все элементы списка. Пожалуйста, помогите мне сделать это?