Вопросы по теме 'iso-prolog'

Получение минимального значения списка
Я пытаюсь найти минимальное значение списка (в качестве учебного опыта, поэтому без min ). Мой подход следующий: minimo([X], X). minimo([X,Y|Tail], N):- (X > Y, minimo([Y,Tail], Y)); (X <= Y, minimo([X,Tail], X)). Это дает...
9057 просмотров
schedule 03.10.2022

Расширение для CFG, что это такое?
Рассмотрим следующее расширение контекстно-свободных грамматик, позволяющее правилам иметь в левой части один (или более) терминал справа от нетерминала. То есть правила вида: A b -> ... Правая часть может быть чем угодно, как в...
497 просмотров

Есть ли в Prolog условие и система перезапуска, как в Common Lisp?
Common Lisp позволяет обрабатывать исключения через условия и перезапуски . Грубо говоря, когда функция выдает исключение, «ловец» может решить, как/должен ли действовать «выбрасыватель». Предлагает ли Prolog подобную систему? Если нет, можно ли...
398 просмотров
schedule 01.02.2023

Правила экранирования атома в Прологе
Мне нужно экспортировать в файл программу Prolog, выраженную с использованием произвольного представления термина в Java. Идея состоит в том, что интерпретатор Пролога должен иметь возможность впоследствии обращаться к сгенерированному файлу. Мой...
374 просмотров
schedule 13.04.2022

Каковы лучшие практики программирования на Прологе и рекомендации по стилю?
Хорошо, я знаю, что это очень общий вопрос и что по этому вопросу было написано несколько статей, но у меня такое ощущение, что эти публикации охватывают очень базовый материал, и я ищу что-то более продвинутое, что улучшило бы стиль и эффективность....
2196 просмотров
schedule 05.04.2024

Равенство двух списков переменных
Как определить мета-логический предикат, который проверяет (то есть успешно или только неуспешно), если два списка уникальных переменных содержат точно такие же переменные, используя встроенные модули из текущего стандарта ISO (ISO / IEC 13211-1:...
1071 просмотров
schedule 21.07.2023

Реализация определяемых пользователем арифметических функций
Как я могу добавить функцию (например, hammingweight) и использовать ее в выражениях, встречающихся в правой части, это некоторая (is)/2 цель? Может ли здесь помочь что-то вроде target_expansion или term_expansion? Я признаю, что это небольшая...
456 просмотров
schedule 07.09.2022

Поведение `nth0/3`, когда N не привязан
Если я наберу в SWI Prolog запрос "nth0", результат будет таким: ?- nth0(N,X,a). N = 0, X = [a|_G282] ; N = 1, X = [_G281, a|_G285] ; N = 2, X = [_G281, _G284, a|_G288] ; ... etc однако в руководстве SWI сказано: Errors...
214 просмотров
schedule 05.03.2023

Список предикатов в заданном библиотечном модуле
Есть ли способ составить список всех предикатов, определенных в данном библиотечном модуле для SICStus Prolog? например если я загружу модуль списков: | ?- use_module(library(lists)). есть ли другой предикат, который я могу запустить из...
142 просмотров
schedule 25.01.2023