Вопросы по теме '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 просмотров

Операторы переназначения Пролога
Я новичок в прологе и пытаюсь переназначить операторы в прологе, изменив их приоритет. Я сталкиваюсь с 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 просмотров

Проверьте, что термин представляет собой список различных переменных.
Каков наиболее компактный и канонический способ проверки списка различных переменных в Прологе 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