我正在尝试编写一个明确的类语法,它采用单例列表并确定它是1还是0.它会一直返回false而我无法弄清楚它为什么不起作用。
zeroorone-->validnum.
validnum-->[0].
validnum-->[1].
答案 0 :(得分:0)
您发布的语言符合
0
和
1
但不是
[0,0,1,1,0,1,1,1,0,0]
是你所期望的吗?
短语(zeroorone,X)。 应该回复
X = [0]。 X = [1]。
现在,你也可能会混淆'代码'风格的Prolog字符串
“100”,[1,0,0] 前者是['1','0','0']
您的代码失败的示例将非常有用
答案 1 :(得分:0)
Anniepoo是对的。这适用于SWI-Prolog。
我将您的代码放入文件a.pl并使用consult(a)加载它。然后我可以运行以下内容。
zeroorone([0], []).
true .
zeroorone([1], []).
true .
正如Anniepoo所说,在按下回车然后空格以获得第二个答案后,运行以下作品
phrase(zeroorone, X).
X = [ 0 ] ;
X = [ 1 ].
然而,正如她所说,除了两个列表[0]和[1]之外,它不起作用。
e.g。
zeroorone([1,0,0], []).
false.
为了获得更好的答案,您可能需要指定实际需要的内容。