gpt4 book ai didi

序言: "Vanilla"带有内置函数的元解释器

转载 作者:行者123 更新时间:2023-12-04 08:21:07 28 4
gpt4 key购买 nike

This answer作者 Jan Burse 展示了 Prolog 中元解释器的最简单实现之一:

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-Prolog 谓词?

最佳答案

我想 predicate_property/2 可能对您的任务有用。

顾名思义,该谓词将谓词(头部)与一个或多个属性相关联。

例如:

?- predicate_property((A,B), P)。
P = 解释;
P = 可见;
P = 内置 ;
P = 静态;
P =imported_from(系统);
等等。

从这些属性中,您可以推断出谓词是否是内置的,并直接调用它。

它也可以在 SICStus 中找到.

但要注意:并非所有内置谓词在直接调用时都保留其语义。我认为讨论它们是什么以及如何解释它们非常值得自己提出问题。

关于序言: "Vanilla"带有内置函数的元解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46537856/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com