- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下序言规则。
b(b(true)) --> [true].
b(b(false)) --> [false].
b(b(E,[=],E)) --> e(E),[=],e(E).
b(b([not],B)) --> [not],b(B).
e(e(I)) --> i(I).
e(e(N)) --> n(N).
e(e(N,O,E)) --> n(N),o(O),e(E).
e(e(I,O,E)) --> i(I),o(O),e(E).
o(o(+)) --> [+].
o(o(-))--> [-].
o(o(*))--> [*].
o(o(/)) --> [/].
i(i(x)) --> [x].
i(i(y)) --> [y].
i(i(z)) --> [z].
i(i(u)) --> [u].
i(i(v)) --> [v].
n(n(0)) --> [0].
n(n(1)) --> [1].
n(n(2)) --> [2].
n(n(3)) --> [3].
n(n(4)) --> [4].
n(n(5)) --> [5].
n(n(6)) --> [6].
n(n(7)) --> [7].
n(n(8)) --> [8].
n(n(9)) --> [9].
[6] 26 ?- b(A,[x,=,4],[]).
false
最佳答案
(如果您改用 prolog 标签,您会更早收到答案)
那么,我们如何定位错误呢?让我们从您的查询开始:
?- 短语(b(A),[x,=,4])。
假的。
不好!
我真的应该启动跟踪/调试器吗?
您目前要问的是:A
的解决方案是什么?对于一个结构良好的句子。
唉,没有。
我们不能问 Prolog 一个更一般的问题吗?
所以,亲爱的 Prolog - 至少 - 你知道任何句子吗?
请说一句话!
?- 短语(b(A),L)。
A = b(真),
L = [真] ;
A = b(假),
L = [假] ...
所以有一些东西 - 我将删除 A
,因为我们想先看句子。
?- 短语(b(_),L)。
L = [真] ;
L = [假] ;
L = [x, =, x] ;
L = [y, =, y] ;
L = [z, =, z] ;
L = [u, =, u] ;
L = [v, =, v] ;
L = [0, =, 0] ;
L = [1, =, 1] ;
L = [2, =, 2] ;
L = [3, =, 3] ;
L = [4, =, 4] ;
L = [5, =, 5] ;
L = [6, =, 6] ;
L = [7, =, 7] ;
L = [8, =, 8] ;
L = [9, =, 9] ;
L = [0, +, x, =, 0, +, x] ...
你在这里看到一个模式吗?
也许我们可以改进它。
你知道长度为 3 的句子是什么?
?- L = [_,_,_], 短语(b(_),L)。
L = [x, =, x] ;
L = [y, =, y] ;
L = [z, =, z] ;
L = [u, =, u] ;
L = [v, =, v] ;
L = [0, =, 0] ;
L = [1, =, 1] ;
L = [2, =, 2] ;
L = [3, =, 3] ;
L = [4, =, 4] ;
L = [5, =, 5] ;
L = [6, =, 6] ;
L = [7, =, 7] ;
L = [8, =, 8] ;
L = [9, =, 9] ;
L = [不,不,真];
L = [不,不,假];
假的。
换句话说:没有其他三个词的句子。
现在,你明白了吗?
带有 =
的句子有一个规则:
b(b(E,[=],E)) -->
e(E),[=],e(E)。
它要求左侧的表达式与右侧的表达式相同。因此只有上面的那些句子。
在调试 Prolog 程序时,与在其他语言中相比,输入(在键盘上)测试数据的需要少得多。相反,使用变量让 Prolog 填充变量。毕竟,Prolog 在这方面比我们快得多;它不会受到 CTS 的影响。
关于Prolog 解析树生成失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13097079/
我有一个需要构建的“平面”XML 菜单。 当前的 XML 树: 5 1
我正在生成 Tic-Tac-Toe 游戏树(第一步后 9 秒),我被告知应该只需要几毫秒。所以我试图优化它,我通过 CodeAnalyst 运行它,这些是正在进行的前 5 个调用(我使用 bitset
我有一个 HTML 文档作为 Linq-to-XML 对象树存储在内存中。考虑到 HTML 的特性,如何将 XDocument 序列化为 HTML? 例如之类的空标签应序列化为 ,而一个空的 应序列
我是一名优秀的程序员,十分优秀!