Prolog命令行运行演示
来源:互联网 发布:网络流行说唱歌曲大全 编辑:程序博客网 时间:2024/06/05 15:52
使用方法:
=事实
:规则
?查询
使用prolog语法.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import alice.tuprolog.InvalidTheoryException;
import alice.tuprolog.MalformedGoalException;
import alice.tuprolog.NoMoreSolutionException;
import alice.tuprolog.NoSolutionException;
import alice.tuprolog.Prolog;
import alice.tuprolog.SolveInfo;
import alice.tuprolog.Theory;
public class Main {
/**
* @param args
* @throws IOException
* @throws InvalidTheoryException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(reader);
String line = null;
Prolog engine = new Prolog();
System.out.print(">");
while(true) {
line = br.readLine();
//System.out.println(">"+line);
if(line != null) {
if(line.startsWith("=")) {
try {
engine.addTheory(new Theory(line.substring(1)));
} catch (InvalidTheoryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if(line.startsWith("!=")) {
try {
Theory theory = engine.getTheory();
Iterator it = theory.iterator(engine);
while(it.hasNext()) {
String temp = it.next().toString();
if(line.substring(2).trim().equalsIgnoreCase(temp)) {
it.remove();
}
System.out.println(temp);
}
//System.out.println(theory.iterator(engine).toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if(line.startsWith(":")) {
try {
engine.addTheory(new Theory(line.substring(1)));
} catch (InvalidTheoryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if(line.startsWith("?")) {
try {
SolveInfo info = engine.solve(line.substring(1));
while(info.isSuccess()) {
System.out.println(info.getSolution());
info = engine.solveNext();
}
} catch (MalformedGoalException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSolutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoMoreSolutionException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
} else {
try {
SolveInfo info = engine.solve("talk("+line+",X).");
while(info.isSuccess()) {
System.out.println(info.getSolution());
info = engine.solveNext();
}
} catch (MalformedGoalException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSolutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoMoreSolutionException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
}
}
System.out.print(">");
}
}
}
- Prolog命令行运行演示
- prolog
- Prolog
- prolog
- Prolog
- HDFS命令行操作演示
- Installing and running SWI Prolog(如何安装运行swi-prolog)
- 十一、BluetoothChat 的运行演示
- MySQL 命令行导入sql数据实战演示
- <<Magento2 命令行安装及演示数据>>系列
- prolog-什么是prolog
- 命令行运行java文件
- cmd运行命令行
- 开始运行命令行
- 命令行运行jar
- 命令行编译运行air
- 命令行下运行matlab
- VS命令行运行程序
- 70-446 认证题
- javaScript实现表单联动
- 测量sql 解析耗费的时间比例
- ftp上传
- Tomcat简介
- Prolog命令行运行演示
- PLATFORM BUILDER 5.0 && 6.0 使用手札
- 一生五句话
- ftp自动上传
- pl/sql 实现归并算法
- 单链表
- Tomcat的目录结构
- MTK平台发展及各芯片功能介绍
- 初步领略.net