Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prolog 定句语法_Prolog_Dcg - Fatal编程技术网

Prolog 定句语法

Prolog 定句语法,prolog,dcg,Prolog,Dcg,我正在尝试编写一个确定的类语法,它接受一个单例列表,并确定它是1还是0。它不断返回false,我不知道为什么它不起作用 zeroorone-->validnum. validnum-->[0]. validnum-->[1]. 您发布的语言匹配 0 及 一, 但不是 [0,0,1,1,0,1,1,1,0,0] 这是你期望的吗 短语(zeroorone,X)。 应该回应 X=[0]。 X=[1] 现在,您还可能混淆了“代码”样式的Prolog字符串 带[1,0,0]的“100”

我正在尝试编写一个确定的类语法,它接受一个单例列表,并确定它是1还是0。它不断返回false,我不知道为什么它不起作用

zeroorone-->validnum.
validnum-->[0].
validnum-->[1].

您发布的语言匹配

0

一,

但不是

[0,0,1,1,0,1,1,1,0,0]

这是你期望的吗

短语(zeroorone,X)。 应该回应

X=[0]。 X=[1]

现在,您还可能混淆了“代码”样式的Prolog字符串

带[1,0,0]的“100” 前者是['1','0','0']


一个代码失败的例子会很有用

Anniepo是正确的。这在SWI Prolog中工作

我将您的代码放入一个文件a.pl中,并使用consult(a)加载它。然后我可以运行以下命令

zeroorone([0], []).
true .

zeroorone([1], []).
true .
正如Anniepoo所说,在按下enter键,然后按空格键获得第二个答案后,运行以下命令会起作用

phrase(zeroorone, X).
X = [ 0 ] ;
X = [ 1 ].
然而,正如她所说,除了两个列表[0]和[1],它对任何东西都不起作用

e、 g

为了得到更好的答案,您可能需要指定实际需要的内容

zeroorone([1,0,0], []).
false.