gpt4 book ai didi

prolog - 向 DCG Prolog 寻求答案

转载 作者:行者123 更新时间:2023-12-02 04:48:05 26 4
gpt4 key购买 nike

我有一个用 prolog 编写的 DCG,它试图将字符串转换为简单的命题逻辑。

目前的规则是:
+ 表示 OR,* 表示 AND,- 表示 NOT

g(or(X,Y)) -->
f(X),
"+",
g(Y).
g(X) -->
f(X).

f(and(X,Y)) -->
e(X),
"*",
f(Y).
f(X) -->
e(X).

e(not(X)) -->
"-",
d(X).
e(X) -->
d(X).

d(X)-->
"(",
g(X),
")".
d(a)-->
"a".
d(b)-->
"b".

但是我遇到了 Out of local trace 的问题错误。

这段代码应该是正确的,但是我如何要求 Prolog 给出 and(not(or(a,b)),or(b,not(a)))作为对 -(a+b) * (b + -a) 的回答

最佳答案

你的语法看起来不错,但你忘记处理/跳过空格

?- phrase(g(X), `-(a+b)*(b+-a)`).
X = and(not(or(a, b)), or(b, not(a))) ;
false.

(注意:我已经手动删除了所有空格,并使用 SWI-Prolog 扩展作为代码列表。)

关于prolog - 向 DCG Prolog 寻求答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31262918/

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