Я пытаюсь выполнить задание по Прологу для школы, и в основном он пытается выяснить, у кого какой офис. Вопрос:
Охотник, Лора, Джим, Салли и Джек работают в одном здании с пятью смежными офисами. Хантер не работает в 5-м офисе, а Лора не работает в первом. Джим не работает в первом или последнем офисе, и он не находится в офисе рядом с Джеком или Лорой. Салли работает в каком-то офисе выше, чем у Лоры. Кто работает в каких офисах?
Итак, у меня есть код ниже, но я получаю:
uncaught exception: error(type_error(fd_evaluable,abs/1),(#\=)/2)
Вот код.
puzzle(P) :-
findWhosOffice(P,Z),
labeling([],Z).
findWhosOffice(P, Z) :-
P = [hunter-Hunter, jack-Jack, jim-Jim, laura,Laura,sally,Sally],
Z = [Hunter, Laura, Jim, Sally, Jack],
Hunter #\= 5,
Laura #\= 1,
Jim #\= 1,
Jim #\= 5,
abs(Jim-Jack) #\=1,
abs(Jim-Laura) #\=1,
Sally #> Laura.