Описание тега visual-prolog

Visual Prolog - это объектно-ориентированное расширение Prolog со строгой типизацией. Предыдущие выпуски Visual Prolog были известны как Turbo Prolog (от Borland) и PDC Prolog. Интересной особенностью Visual Prolog является возможность создавать приложения с графическим интерфейсом Microsoft Windows. В последних версиях введены анонимные предикаты и дженерики.
2 ответа

Пролог - Упражнения на факты и списки

Проблема заключается в том, что мне нужно запрограммировать предикат, способный обращаться к продуктам в базе данных, чтобы он возвращал список, заполненный названиями продуктов, цены на которые были снижены (что обозначается "состоянием"). domains …
05 янв '12 в 17:51
1 ответ

Пролог. Как вывести решение вроде Да или Нет

Я пытался решить проблему точки, принадлежащей области. В результате мне нужно получить ответ: принадлежит ли точка данной области или нет. Координаты точки, введенные пользователем с клавиатуры. Когда я пытаюсь передать координаты точки непосредств…
19 фев '15 в 15:50
2 ответа

Ошибка "недопустимый тип переменной для этой позиции" в прологе

Я пытаюсь выполнить поиск животного, у которого есть это свойство, но у меня появляется ошибка "Недопустимый тип переменной для этой позиции". Как ее решить? domains type=symbol object=symbol property=symbol value=symbol parent=symbol predicates non…
27 окт '18 в 16:11
4 ответа

Почему необходимо добавлять \n и \r при отправке ввода работающему процессу?

Я пытаюсь добавить Java из исполняемого файла, созданного Visual Prolog, запустив его как процесс. Я использовал этот ответ для реализации процесса взаимодействия. Мой Visual Prolog ожидает число из командной строки, он даже проверяет его (независим…
22 дек '13 в 04:28
1 ответ

Ошибка визуального пролога c502: выражение не дает значения

Я пытаюсь перевести простую проблему Turbo Prolog в Visual Prolog 7.1 Оригинальный код Turbo Prolog следующий. DOMAINS s=string sl=s* sll=sl* PREDICATES select(sl,s,sl) solve(sll) CLAUSES select([A|B],A,B). select([A|B],C,[A|D]):- select(B,C,D). sol…
19 дек '16 в 12:22
3 ответа

Определение типа пролога в swi-прологе

В визуальном прологе в программе пролога есть раздел "домены", в котором вы можете определять типы. Есть ли что-то подобное в swi-прологе? В визуальном прологе тип определяется как: domains NewType = thing1; thing2
17 окт '10 в 20:57
2 ответа

Подсчет всех четных чисел в b-дереве в Прологе

Я хочу написать программу на Прологе, которая создает список всех четных целых чисел, которые находятся в b-дереве. Это то, что я написал до сих пор. Предикат, который считает все элементы в дереве. Я не знаю, где поцарапать. Domains element=integer…
03 янв '12 в 22:40
0 ответов

Шаблон Visual Prolog Flow не существует

Я пишу экспертную систему, которая угадывает животных. Это пример, предоставленный лектором. Я использую визуальный пролог, но получаю ошибки компиляции, которые не могу понять. Не могли бы вы помочь мне? #include @"pfc\core.ph" implement program op…
07 май '16 в 01:36
2 ответа

Как я могу определить разные в прологе?

Как я могу определить, что две переменные не равны в Прологе? Например: z is X and Y parent X is male and Y is female Теперь я хочу найти сестер или братьев. Но результат Пролога таков: Y sister Y when parent have one child and not have X Теперь я х…
17 апр '14 в 17:02
1 ответ

Пролог. Разбить целое число в натуральном выражении

Моя задача: найти количество разбиений натурального числа в натуральном выражении. Например: N=5. Ответ 7, потому что 5: {1,1,1,1,1}, {2,1,1,1}, {2,2,1}, {3,1,1}, {3,2}, {4,1}, {5} Я написал решение на JS: function pcount(number, limit) { if (limit …
14 мар '15 в 19:06
1 ответ

Ошибка программы 1010 Пролог

PREDICATES nondeterm male(symbol) nondeterm female(symbol) nondeterm wife(symbol,symbol) nondeterm mother(symbol,symbol) nondeterm father(symbol,symbol) nondeterm brother(symbol,symbol) nondeterm sister(symbol,symbol) nondeterm sonInLaw(symbol,symbo…
28 апр '15 в 10:30
2 ответа

Проблема пролога с функцией максимального списка: недетерминированная и противодействующая процедура

Я пытаюсь сделать небольшой проект в прологе, где пользователь может ввести список, а затем он вычисляет среднее значение, максимум в списке и т. Д. И т. Д. Пока все хорошо, но я столкнулся с проблемой при написании функции max (находит максимальное…
20 июн '13 в 13:42
2 ответа

Пролог логическое задание

Есть логическая проблема: четверо друзей: Иван, Петр, Михаил, Сергей проводили время по-разному: двое играли в шахматы, один читал книги, один смотрел телевизор. Найдите, кто что делает, если Сергей не играет в шахматы, а Петр не смотрит телевизор. …
25 фев '15 в 19:25
2 ответа

Турбо пролог на убунту

Я полный нуб к Прологу. Я хочу установить turbo prolog в убунту. Как я могу это сделать. Я погуглил это, но все напрасно. Есть ли другой вариант turbo prolog для убунту?
1 ответ

Базовая библиотечная система на прологе

Я хочу сделать основную систему управления библиотекой в ​​прологе. Программа должна отвечать на запросы, например, какая книга выпущена, какой студент и какой ежедневник будет возвращен. Мне нужно руководство с точки зрения того, какие именно компо…
18 апр '11 в 16:52
1 ответ

Пролог поиск по тому же полю в списке

У меня есть БД с такой структурой my_family( person("FN","SN", unempl(), 20), person("FN2","SN", work("Soft", 200), 30), [person("FN3","SN", work("HP" , 10), 13), person("FN4","SN", work("LP", 200), 1), person("FN5","SN" , work("qwerty", 300), 1)]).…
30 янв '13 в 18:17
1 ответ

Пролог. Удалить четные индексы из списка

Я пытаюсь удалить элементы с четными индексами. Вот мой код: DOMAINS list = integer* PREDICATES remove(list,list) CLAUSES remove([],[]). remove([_,H|T1], [H|T2]):- remove(T1, T2). GOAL remove([1,2,3,4,5], NewList). Я пропускаю первый элемент в списк…
23 мар '15 в 17:12
0 ответов

Prolog5.2 ошибка 701 анализа петли

У меня есть маленький код пролога, который является правильным, но не хочет запускаться из-за ошибки, называемой анализом цикла domains list=integer* predicates reverse(list,list,list). clauses reverse([H|T],R,X):-reverse(T,[H|R],X). Goal reverse([1…
22 ноя '17 в 20:38
1 ответ

Пролог: подсчет положительных элементов в списке

Я хочу посчитать положительные элементы в списке (VIsual Prolog). Итак, я написал эту функцию: positiveCount([], C). positiveCount([A], C) :- A > 0, C = C + 1. positiveCount([H|T], C) :- H > 0,!,C = C+1,positiveCount(T,C); positiveCount(T,C). …
22 дек '15 в 19:57
1 ответ

Перевести (list1, list2) в пролог

Я пробовал функторный перевод ([3,5,1,3],[три, пять, один, три]), который выполняет операцию печати чисел. Я получаю странное предупреждение при выполнении, как это, 35? - перевод ([1,2,3],[a,b,c]). ОШИБКА: запись /2: поток `a'не существует domains …
14 сен '11 в 18:51