Вопросы по теме 'iso-prolog'
В чем разница между 'и "в Прологе?
Я новичок в Prolog и заметил, что 'и "ведут себя по-разному, но мне любопытно, почему. В частности, при загрузке файла ?- ['test1.pl']. работает, а ?- ["test1.pl"]. - нет.
6951 просмотров
schedule
27.04.2022
Пролог-функтор — вычисление x^y
Я новичок в прологе и пытаюсь научиться программировать. Я хочу знать, как вычислить x^y в Прологе, оба из которых являются целыми числами.
Я точно знаю, что это происходит примерно так:
% exp(y,x,z) <- z is x**y
1549 просмотров
schedule
03.07.2023
Определение инфиксного оператора пролога
Я недавно изучаю Пролог, и мне кажется, что три типа, используемые для определения инфиксных операторов, сбивают с толку.
В чем разница между xfx, xfy и yfx при указании типа оператора? Я погуглил о проблеме и не нашел ничего полезного.
Я...
4478 просмотров
schedule
26.10.2022
Рекурсивная функция с операторами If-Else в Прологе
Я пытаюсь написать рекурсивную функцию в прологе, которая вычисляет R = (2*X + Y)^N без использования оператора экспоненты. Я написал рекурсивную функцию с операторами if-else и получаю сообщение об ошибке: ) or operator expected . Мне кажется,...
1326 просмотров
schedule
16.04.2023
Онлайн-описание языка Пролог с возможностью поиска
Есть ли в сети описание языка Пролог (синтаксис и семантика)?
Существует множество справочников по реализациям. Но ни то, ни другое не является описанием языка. Например, руководство по SWI Prolog состояния
Это руководство не описывает...
441 просмотров
schedule
27.03.2022
Создание нового атома на основе существующего атома в списке
Я хотел бы знать, как создать новый атом в списке на основе существующего атома в другом списке. Дан список:
L=[a,b,c,d]
Я хотел бы создать новый список, например:
P=[a_,b_,c_,d_]
Другими словами, что-то похожее на добавление...
135 просмотров
schedule
07.11.2022
Законное использование (\+)//1
В правилах грамматики ( dcg ) есть несколько предопределенных конструкции: (',')//2 означает конкатенацию, ('|')//2 означает чередование и т. д. Одна конструкция, которая поддерживается несколькими, но не всеми системами Prolog, — это (\+)//1 ....
172 просмотров
schedule
29.07.2022
программа на прологе, чтобы проверить, является ли данный ввод цифрой, прописными или строчными буквами
Я использовал следующую логику для вышеуказанной программы, но она выдает ошибку, показывающую >=/2: Arithmetic: 'a/0' is not a function . Что мне сделать, чтобы исправить программу?
digit(X):- X>=0,X<10,write('input is digit')....
2041 просмотров
schedule
23.06.2022
Что означает предложение без головы в Прологе?
В начале программы на Прологе я вижу:
:-dynamic(path/1).
Кажется, это пункт, у которого нет головы. Что это означает?
992 просмотров
schedule
15.01.2023
Операторы переназначения Пролога
Я новичок в прологе и пытаюсь переназначить операторы в прологе, изменив их приоритет. Я сталкиваюсь с 4 ошибками для следующего:
:-op(1000,yf,+). %unary plus%
:-op(1000,yf,-). %unary minus%
:-op(750,yfx,"%"). %modulo%
Первые два...
430 просмотров
schedule
01.07.2022
Значение индикаторов режима инстанцирования в аргументах предикатов Пролога
Глядя на документацию Prolog, сигнатуры предикатов иногда записываются следующим образом:
foo(:Bar, +Baz, -Qux, ?Mop)
Для чего нужны : , + , - и ? и как их интерпретировать? Кроме того, они единственные, которые существуют, или их...
1481 просмотров
schedule
18.05.2023
Ошибка пролога Swi: отображается правда, но не ложь
Только что установил SWI-Prolog на мою машину W8, и он выдает ошибку.
Вот ошибка:
ERROR: toplevel: Undefined procedure: mark/0 (DWIM could not correct goal)
Допустим, мой исходный файл пролога содержит один факт:
Prolog source......
1152 просмотров
schedule
05.11.2022
Будет ли использование member внутри предложения forall в SWI-Prolog всегда выводить элементы в одном и том же порядке?
Недавно познакомившись с Prolog, я использовал его для нескольких простых задач и начал задумываться об использовании member внутри циклов forall, подобных тому, который показан в тривиальном примере ниже:
forall(member(A,[1,2,3,4]), print(A))....
2759 просмотров
schedule
20.03.2022
странная арифметика со swi-прологом
Я нахожу результат очень странным. Почему не 0,3? Может кто-нибудь сказать мне, почему такой результат? Можно ли это исправить.
?- X is 5.3-5.
X = 0.2999999999999998.
?-
Мой второй вопрос: как мне преобразовать «часовую» нотацию...
3221 просмотров
schedule
08.01.2023
Проверьте, что термин представляет собой список различных переменных.
Каков наиболее компактный и канонический способ проверки списка различных переменных в Прологе ISO? Назовем этот мета-логический предикат is_varset/1 .
Таким образом, он должен быть успешным, если его аргумент представляет собой список...
356 просмотров
schedule
27.11.2022
Экранирующие символы ANSI в gprolog
Попытка напечатать полужирный и подчеркнутый текст в прологе, но не может их написать
write('\033[1mbold\033[0m')
Делает эту (ожидаемую) ошибку:
syntax error: \ expected in \constant\ sequence
Как правильно это сделать с gprolog...
163 просмотров
schedule
27.12.2022
Классификация ошибок ISO для множественного определения в Prolog DSL
Я создаю DSL, который использует имена для процедур (по существу), которые должны быть уникальными.
Неясно, какой термин ошибки использовать для представления второго определения.
существование_ошибки вроде как подходит, но мне это неудобно....
102 просмотров
schedule
12.07.2023
В чем разница между: - и? - в Прологе?
Эта программа на Прологе выводит Hello :
main :-
write('Hello'), nl.
:- main.
Я изменил (:-)/1 на (?-)/1 :
main :-
write('Hello'), nl.
?- main.
Это дает точно такой же результат. Это также напечатает Hello .
Так в...
423 просмотров
schedule
18.01.2023
! / 0 должен прорезать (\ +) / 1 или нет?
С одной стороны:
$ sicstus
SICStus 4.6.0 (x86_64-linux-glibc2.17): Mon Apr 6 09:23:37 PDT 2020
[...]
| ?- \+ (!,false) ; X = 1.
yes
... с другой стороны ...
$ gprolog
GNU Prolog 1.4.5 (64 bits)
[...]
| ?- \+ (!,false) ; X = 1.
true ? ;
X...
53 просмотров
schedule
24.01.2023