SWI Prolog " ERROR: Type error: `dict' expected, found `s140_1' (an atom)" - Prolog

  1. В SWI Prolog выскакивает ошибка " ERROR: Type error: `dict' expected, found `s140_1' (an atom)". А должно выводится в терминале: dd. ddf. dfdfd. dfdf. dd. в s140_1.pl уберал точки, результат тотже. Писал что вроде p(1). , ошибка не исчезла. Вводил в терминале и выход:Bash1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ?- chdir('/home/persej/АлгоритмыИскусственногоИнтеллектаНаЯзыкеPROLOG'). true.   ?- [s140]. true.   ?- findterm. ERROR: Type error: `dict' expected, found `s140_1' (an atom) ERROR: In: ERROR:   [11] throw(error(type_error(dict,s140_1),_6718)) ERROR:    [9] '$dicts':'.'(s140_1,pl,_6758) at /usr/lib/swi-prolog/boot/dicts.pl:46 ERROR:    [8] findterm at /home/persej/АлгоритмыИскусственногоИнтеллектаНаЯзыкеPROLOG/s140.pl:2 ERROR:    [7] <user> ERROR: ERROR: Note: some frames are missing due to last-call optimization. ERROR: Re-run your program in debug mode (:- debug.) to get more detail. ?-s140.pl


textual

Код к задаче: «SWI Prolog " ERROR: Type error: `dict' expected, found `s140_1' (an atom)" - Prolog»

    see('s140_1.pl'),

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

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



Похожие ответы
  1. Всем привет! Являюсь новичком, "пытаюсь" понять азы языка, использую SWI-Prolog, поэтому буду крайне признателен за совет. Задача "Напишите предикат p(+L, -S) - истинный тогда и только тогда, когда список S есть циклическая перестановка элементов списка L, например, p([f, g, h, j], [g, h, j, f]) -истина." Моя идея решения простая: определить голову и хвост, переставить голову в хвост. С реализацией проблемы. Во-первых, не могу понять, где в моем коде ошибка:

  1. Доброго времени суток уважаемые форумчане.Прошу помочь с заданием:Студенты математического факультета Артур, Василий, Надежда и Эльвира поехали на каникулах в город Санкт-Петербург. Однако в дороге выяснилось, что им нравятся картины разных художников (Айвазовский, Босх, Левитан, Рембрандт). Поэтому на следующий день трое из ребят разошлись по различным музеям (Эрмитаж, Русский музей, Корпус Бенуа Русского музея), а Василий решил посетить музей космонавтики (однако он по-прежнему любит живопись, просто обнаружилось, что в Санкт- Петербурге нет интересующих его полотен). Известны следующие факты. В корпусе Бенуа была выставка полотен Левитана. В Русском музее не выставляются картины иностранных авторов, а в Эрмитаже почти нет русских (будем считать, что там нет Айвазовского и Левитана). Надежда любит маринистов и больше всего Айвазовского, а Эльвира предпочитает Рембрандта. Найдите, куда каждый из студентов направился и каковы его или ее вкусы. Не могу понять как записать условия. Буду рад любой помощи. Спасибо!

  1. Помогите, пожалуйста, решить логическую задачу. Болельщики футбольных команд делали прогнозы об итогах соревнований «Турнир четырех»: — Я уверен, что Спартак будет чемпионом, а ЦСКА займет последнее место — сказал Иван. — Что ты, Спартак выше третьего не поднимется, а ЦСКА станет вторым — возразил Сергей. — Чемпионом будет Динамо, а ЦСКА войдет в тройку сильнейших — сделал свой прогноз Петр. — Динамо будет вторым, а вот Ротор точно будет последним — промолвил Алексей. Выяснилось, что каждый из болельщиков был прав в одном прогнозе и ошибся во втором. Как распределились места, занятые командами? Проблема в том, что нужно и учесть условие "каждый из болельщиков был прав в одном прогнозе и ошибся во втором" и установить между названием команды-местом взаимнооднозначное соответствие. Добавлял объекты для обозначения различных болельщиков, чтобы условие учесть, но тогда соответствия нет, и выводятся лишние варианты. В итоге додумался только сгруппировать в утверждениях условия для каждой команды, но это, очевидно, просто перебор всех вариантов с такими условиями:

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

  1. SWI-Prolog. Работа со списками. Напишите программу, которая вставит в начало списка новый элемент.

  1. Напишите решение предложенной задачи на Прологе.Pascal1 2 3 4 5 6 7 8 9 10 11 program upr;        var i,n:integer;            s:real;        begin          read(n);          i:=1;          while i<=n do begin                        s:=s+1/i; i:=i+1;                        end;          write(s);        end.

  1. Доброго времени суток форумчане. Появилась надобность написать эмулятор предиката retractall() для базы данных, без возможности использовать retract. Самое очевидное - записать в файл все факты, и считать все те, не совпадающие с введенным. И так, первым делом я определил предикаты базы данных:

  1. Напишите в турбо прологе программу с предикатом fibo, вычисляющее числа фибоначи обычной рекурсии с двумя рекурсивными вызовами.

  1. Все время обучения писала программы, состоящие из одних предекатов, но сейчас нужна база данных, пришлось писать блоковую программу. Проблема в том, что ни мой код, ни коды с блоками из интернета попросту не компилятся. Интерпретатор Gnu Prolog, установить Turbo Prolog не могу, не сходится с железом.