首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有clpr约束的XSB Prolog元解释器问题

带有clpr约束的XSB Prolog元解释器问题
EN

Stack Overflow用户
提问于 2016-02-08 19:05:07
回答 2查看 51关注 0票数 1

我在我的Mac上运行XSB Prolog (El Capitan 10.11.2):XSB版本3.6。(Gazpatcho,2015年4月22日) i386-apple-darwin15.2.0 64位;模式:最佳;引擎: slg-wam;调度:本地

我正在使用clpr包,并想编写一个小小的元解释器:

代码语言:javascript
复制
:- [clpr].
try((G1,G2)):- !, try(G1), try(G2).
try((G1; G2)):- !, try(G1); try (G2).
try(true):- !.
try({X}):- !, {X}.
try(G):- clause(G, Body), try(Body).

但是,try({X=1+2})不起作用--它与第四个子句不匹配,并下降到第五个子句。

知道为什么吗?

EN

回答 2

Stack Overflow用户

发布于 2016-02-08 19:31:53

嗯,看起来如果用load_dyn(test)加载包含代码的文件,代码就能正常工作。(如果我只是查阅文件,也就是用[test]加载它,它就不能工作。

票数 0
EN

Stack Overflow用户

发布于 2016-02-08 19:39:57

这确实很奇怪。如果您重新参考代码两次,那么您将得到预期的结果:

代码语言:javascript
复制
XSB Version 3.6. (Gazpatcho) of April 22, 2015
[i386-apple-darwin15.3.0 64 bits; mode: optimal; engine: slg-wam; scheduling: local]
[Build date: 2016-02-07]

| ?- reconsult(xsbb).
[xsbb loaded]
[clpr loaded]
[dump loaded, cpu time used: 0.0010 seconds]
[itf loaded]
[geler loaded]
[class loaded]

yes
| ?- reconsult(xsbb).
[xsbb loaded]
[clpr loaded, cpu time used: 0.0010 seconds]
[dump loaded]
[itf loaded]
++Warning[XSB]: [Runtime/P]  replacing previous verify_attribute_handler for module itf
[geler loaded]
++Warning[XSB]: [Runtime/P]  replacing previous verify_attribute_handler for module geler
[class loaded]
++Warning[XSB]: [Runtime/P]  replacing previous verify_attribute_handler for module class
++Warning[XSB]: [Runtime/P]  replacing previous constraint_portray_hook for module clpr

yes
| ?- try({X=1+2}).

X = 3.0000

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

https://stackoverflow.com/questions/35268100

复制
相关文章

相似问题

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