Предикат отображения Prolog XPCE
Привет, у меня есть программа ("экспертная программа"), в которой пользователь выбирает несколько вариантов кнопок, и эта программа выполняет поиск в предикатах автомобилей с установленными параметрами. После этого я хочу отобразить один или несколько предикатов в окне. Это несколько строчек программы. Формат предикатов:
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 ловит ошибку в консоли:
ОШИБКА: [Thread pce] char_array -> инициализация: Аргумент 1 (текст): char_array' expected, found
[A2,a3]
И что теперь? Я думаю, что ошибка в "char_array(X)", но почему это не работает?
1 ответ
Может быть, вы можете попробовать
...
with_output_to(atom(X), write(auto(Marka,_,Kolor,Nadwozie,Km))),
send(Cars,append(text(X))),
...