SWI-Prolog. Ошибка при обработке неконкретизированной переменной - Prolog

  1. Задание: расставить в ряд разноцветные многогранники. Условие: 1.Каждая фигра окрашена в один цвет. 2.Каждый многоугольник имеет равное или большее колличество граней в сравнении с предыдущим. 3.Последовательность размещения многоугольников в ряду должна соответствовать последовательности цветов радуги. Возможен пропуск 1-3 цветов. После достижения конца радужного спектра надо вернуться в его начало и продолжить расстановку многоугольников. При этом цвета не могут повторяться. Необходимо реализовать обработку неконкретизированной переменной. (Если в главном меню ввести неконкретизированную переменную, например 'sequence_creator(O,X).' - программа должна выводить: ?- sequence_creator(O,X). O = v1, X = [v1] . ) При вводе неконкретизированной переменной выводит false. Где ошибка и как правильно реализовать данную обработку? Вот код:


textual

Код к задаче: «SWI-Prolog. Ошибка при обработке неконкретизированной переменной - Prolog»

sequence_creator(R1, [R1]):-
polyhedrons_db,
var(R1),
first_polyhedron(R1,R,C),
sequence_generator(R, C, [],[]).

СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 4.000 из 5



Похожие ответы
  1. Здравствуйте!!! Компилятор выдает ошибку (E;z9a.pro, pos: 14, 235 The FILE and DB_SELECTOR domains must be global) Код обыкновенной!!!

  1. Программа должна выводить список имен, список возрастов и в конце средний возраст персон. Но при компилирование выходит 4 ошибки. Выполнял всё по учебнику. Также есть программа.

  1. Добрый день! Есть условие задачи: "На столе лежат в ряд четыре фигуры: треугольник, ромб, круг и квадрат. Квадрат, круг, ромб и треугольник вырезаны из белой, синей, красной и зеленой бумаги. Известно, что: круг не белый и не зеленый; синяя фигура лежит между ромбом и красной фигурой; треуголь- ник не синий и не зеленый; квадрат лежит между треугольником и белой фигурой. Из бумаги какого цвета вырезан ромб?" Установил ограничения согласно условиям, но при выполнении

  1. Нужно вычислить значение выражения, используя SWI Prolog. Вот что получилось:

  1. Начал только изучать, выкидывает ошибку "Syntax error in clause body, predicate call expected". В чем проблема?

  1. Здравствуйте, написал вот такую програмку по нахождению позиции числа n в последовательности Фибоначчи. На вход подается сумма четных чисел, на выходите необходимо получить позицию, но есть где-то ошибка не могу понять, как исправить.

  1. В книжный магазин пришли четыре подруги: Соколова, Ястребова, Орлова и Голубева. Одна из них искала книгу «Поющие в терновнике», другая – «Финансиста», третья – «Охоту на овец», четвёртая – «Заводной апельсин». Соколова не искала книги «Поющие в терновнике» и «Заводной апельсин». Орлова – не искала книги «Охота на овец» и «Поющие в терновнике». Голубева не искала книги «Заводной апельсин» и «Поющие в терновнике». Если Ястребова искала книгу «Поющие в терновнике», то Голубева искала книгу «Финансист». Ястребова не искала книги «Заводной апельсин» и «Охота на овец». Какая девушка какую книгу искала?

  1. Друзья, помогите побороть эту ошибку: "Free varable in expression" в выражении scan(V,Q):-V<=Q,