首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prolog:"Vanilla“内置元解释器

Prolog:"Vanilla“内置元解释器
EN

Stack Overflow用户
提问于 2017-10-03 05:41:48
回答 1查看 339关注 0票数 6

Jan的这个答案展示了Prolog中元解释器最简单的实现之一:

代码语言:javascript
复制
solve(true) :- !.
solve((A,B)) :- !, solve(A), solve(B).
solve(H) :- clause(H,B), solve(B).

我想扩展这个解释器,以便它可以调用内置程序。普通的不能处理像solve(member(X, [1,2,3,4]))这样的调用。这有可能使用ISO谓词吗?如果没有,是否可以使用SWI谓词?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-03 08:33:27

Stackoverflow拒绝接受我的回答:)

给他们打个电话

编辑

例如

代码语言:javascript
复制
?- [user].
solve(true) :- !.
|: solve((A,B)) :- !, solve(A), solve(B).
|: solve(H) :- clause(H,B), solve(B).
|: solve(T) :- call(T).
|: ^Dtrue.

?- solve(member(X, [1,2,3,4])).
X = 1 ;
X = 2 ;
X = 3 ;
X = 4.

唯一的补充:solve(T) :- call(T)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46537856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档