как решить ошибку в этом коде пролога - PullRequest
0 голосов
/ 21 января 2019

Что не так в этом коде

frequency(f1).
frequency(f2).
frequency(f3).

allocation(z1,z2,z3,z4,z5,z6,z7,z8) :-
    frequency(z1), frequency(z2), frequency(z3), frequency(z4), frequency(z5), frequency(z6), frequency(z7), frequency(z8),
    z1\==z2, z1\==z3, z2\==z4, z2\==z3, z3\==z4, z3\==z6, z4\==z5, z4\==z6, z4\==z7, z6\==z7, z6\==z8.

?- allocation(f1,f2,f3,f1,f2,f3,f2,f3).

синтаксическая ошибка:. или оператор ожидается после выражения

1 Ответ

0 голосов
/ 25 января 2019

Следующая подсветка кода должна прояснить, почему цель allocation(f1,f2,<b>f3</b>,f1,f2,<b>f3</b>,f2,<b>f3</b>) не может быть успешной:

allocation(Z1,Z2,<b>Z3</b>,Z4,Z5,<b>Z6</b>,Z7,<b>Z8</b>) :-
   dif(Z1,Z2), dif(Z1,Z3), 
   dif(Z2,Z3), dif(Z2,Z4),
   dif(Z3,Z4), <b>dif(Z3,Z6)</b>,
   dif(Z4,Z5), dif(Z4,Z6), dif(Z4,Z7),
   dif(Z6,Z7), <b>dif(Z6,Z8)</b>,
   maplist(frequency, [Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8]).

Обратите внимание на использование dif/2 вместо (\==)/2 в приведенном выше коде?

сохраняет , для упрощения !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...