0

嗨,我有程序(“专家程序”),用户在其中选择几个按钮选项,并且该程序在具有此选中选项的谓词汽车中搜索。在此之后,我希望在窗口中显示这个或多个谓词。这是几行程序。谓词格式:

auto(audi,a4,bialy,sedan,120).

auto(audi,a6,czerwony,sedan,160).

和我希望显示的片段:

 X=auto(Marka,_,Kolor,Nadwozie,Km),
send(Cars,append(text(X))),

我试图将整个谓词分配给一个变量,但我可能做不到。如何以不同的方式查看这些数据?

编辑:

我发现类“findall()”有很大帮助:

findall(Model,auto(Marka,Model,Kolor,Nadwozie,Km),X),
send(Cars,append(char_array(X))),

现在可以了,在控制台工作,但不是在 XPCE 中,Prolog 在控制台中捕获错误:

错误:[线程 pce] char_array -> 初始化:参数 1(文本):char_array' expected, found[a2,a3]'

现在怎么办?我认为错误在“char_array(X)”中,但为什么这不起作用?

4

1 回答 1

0

也许你可以试试

...
with_output_to(atom(X), write(auto(Marka,_,Kolor,Nadwozie,Km))),
send(Cars,append(text(X))),
...
于 2018-03-11T21:25:56.640 回答