Описание тега logical-purity
Логическая чистота - это свойство логических программ, написанных только с использованием предложений Хорна.
2
ответа
Пролог конструкции if-then-else: -> vs *-> vs. if_/3
Как отмечалось в другом ответе Stackru, который я больше не могу найти, этот шаблон часто появляется в практическом коде Prolog: pred(X) :- guard(X), ... pred(X) :- \+ guard(X), ... и многие люди пытаются сжать это pred(X) :- (guard(X) -> ... ; .…
31 окт '18 в 16:30
2
ответа
Источник чистого пролога маленьких программ
Вопрос: есть ли место с некоторыми программами, которые я могу проверить? Я говорю о стиле розеттского кода, но я пошел туда и увидел, что почти каждая программа решается с непростым прологическим синтаксисом (с использованием cut, с использованием …
06 апр '16 в 13:32
8
ответов
Другой /2 - существует ли чистое детерминированное определение?
different(Xs, Ys) :- member(X, Xs), non_member(X, Ys). different(Xs, Ys) :- member(Y, Ys), non_member(Y, Xs). Хотя это определение с использованием member/2 а также non_member/2 почти 1 идеален с декларативной точки зрения, он создает избыточные реш…
16 июн '15 в 09:32
2
ответа
Порядок голов в чистом прологе
Я очень новичок в прологе. Насколько я знаю, Чистый Пролог ограничен клаузлами Рога. Вот очень простая прологическая программа - % student( Snr , FirstName , LastName , Semester ). student( 1000 , 'Anna' , 'Arm' , 'ti2' ) . student( 1001 , 'Rita' , …
28 фев '16 в 07:40
4
ответа
Двусвязный список в Прологе
Я изучал Пролог в свободное время от 8 месяцев до года, и теперь я перехожу к реализации некоторых классических структур данных и алгоритмов. Я заинтересован в получении двусвязного списка в Прологе, но совершенно сбит с толку относительно того, как…
27 янв '19 в 21:51
2
ответа
Какая польза от if_/3?
Предикат if_/3 кажется довольно популярным среди немногих основных участников Prolog-части Stack Overflow. Этот предикат реализован как таковой, благодаря @false: if_(If_1, Then_0, Else_0) :- call(If_1, T), ( T == true -> call(Then_0) ; T == fals…
03 окт '16 в 13:54
1
ответ
Что подразумевается под "логической чистотой" в Прологе?
Что подразумевается под "логической чистотой" (в контексте программирования на Прологе)? Информация о тэге логической чистоты гласит "программы, использующие только клаузулы Хорна", но затем, как бы предикаты вроде if_/3квалифицируйте, используя сто…
11 авг '15 в 12:08
2
ответа
Пролог: избегайте лишних точек выбора (недетерминизм) с оператором вырезания и без него
Во-первых, я прочитал все другие посты на SO, касающиеся использования разрезов в Прологе, и определенно вижу проблемы, связанные с их использованием. Однако для меня все еще есть некоторая неясность, и я хотел бы решить это раз и навсегда. В привед…
12 июн '16 в 15:16
2
ответа
Объединение чистых предикатов
Я пытаюсь объединить некоторые чистые предикаты из предыдущих вопросов о переполнении стека, чтобы создать свой собственный предикат. Я хочу дать список c (с которыми связаны факты - "at") и термин "особенность", в котором есть оператор и порог для …
27 сен '17 в 11:10
2
ответа
Правильное управление потоком в Прологе без использования не декларативного синтаксиса if-then-else
Я хотел бы проверить произвольный факт и сделать что-то, если оно есть в базе знаний, и что-то еще, если это не так, но без ( I -> T ; E)синтаксис. У меня есть некоторые факты в моей базе знаний: unexplored(1,1). unexplored(2,1). safe(1,1). учиты…
19 мар '16 в 03:19
1
ответ
Пролог - возвращает результат вместо печати в алгоритме
Я знаю, что технически нет "возврата" в Прологе, но я не знал, как сформулировать вопрос иначе. Я нашел пример кода алгоритма для поиска маршрутов между станциями метро. Он работает хорошо, однако предполагается, что он просто распечатывает результа…
25 мар '16 в 16:08
2
ответа
Логическое отрицание в прологе
Я прочитал довольно много о Отрицании Пролога Отказом, где Пролог, чтобы доказать это \+Goal держит пытается доказать, что Goal выходит из строя. Это тесно связано с CWA (предположение о близком мире), где, например, если мы запрашиваем \+P(a) (где …
09 дек '17 в 14:21
1
ответ
Каким требованиям должна соответствовать компьютерная функция, чтобы считаться "монотонной"?
Каким требованиям должна соответствовать компьютерная функция / процедура / предикат, чтобы считаться "монотонной"? Let A be some thing , Let B be some thing , Let R be a monotonic relationship between A and B , Let R_ be a non-monotonic relationshi…
10 апр '17 в 03:44
2
ответа
Избыточные ответы варианта уточненного предиката append/3
Я хотел предложить логически чистое решение некоторых других недавних проблем на этом форуме. Для начала я внедрил усовершенствованный вариант append/3 и назвал это appendR/4, Он основан на предикатах if_/3 а также (=)/3 реализовано @false в объедин…
04 апр '15 в 08:57
2
ответа
Сопрограмма в Прологе: когда аргумент является списком (он имеет фиксированную длину)
Вопрос Можно ли запланировать выполнение цели, как только длина списка будет известна / исправлена, или, как указывает @false в комментариях, данный аргумент становится [правильным] списком? Что-то вроде этого: when(fixed_length(L), ... some goal ..…
19 янв '15 в 12:03
3
ответа
Декларативное использование memberchk/2
memberchk/2 это обычно определенный предикат, который определяется с точки зрения member/2 вот так: memberchk(X, Xs) :- once(member(X, Xs)). Следовательно, это удастся только для первого ответа member/2, Его полное процедурное значение не вписываетс…
25 окт '15 в 10:43
2
ответа
Пролог, о том, как формировать лучшие статьи
У меня есть следующие пункты: num_parent(adam, X) :- !, X = 0. num_parent(eve, X) :- !, X = 0. num_parent(X, 2). Когда я набрал запрос: num_parent(eve,X). Это только возвращает: X = 0. что я и хочу Но когда я набрал этот запрос: num_parent(X,0). это…
23 ноя '17 в 11:03
1
ответ
is_list/1 и свободные переменные
Вот первое наблюдение: ?- is_list([]), is_list([_,_,_]). true. Вот еще одно наблюдение: ?- [] = _, [_,_,_] = _. true. Поэтому с чего бы is_list/1 быть реализован таким образом, чтобы ?- is_list(_). false. или же ?- is_list([_|_]). false. когда _ мож…
01 июл '16 в 14:09
1
ответ
Пролог: Можно ли заставить предикат вести себя по-разному в зависимости от того, является ли значение основательным или нет?
У меня есть несколько сложный предикат с четырьмя аргументами, которые должны работать, когда первый и последний аргументы являются заземлением / не заземлением, а не заземлением / заземлением или заземлением / заземлением, а второй и третий аргумен…
16 окт '15 в 15:07
2
ответа
Пролог не дает мне решения, когда он существует
Я работаю через Семь языков за семь недель, но есть кое-что, чего я не понимаю в прологе. У меня есть следующая программа (в зависимости от их программы Wallace и Grommit): /* teams.pl */ onTeam(a, aTeam). onTeam(b, aTeam). onTeam(b, superTeam). onT…
02 окт '16 в 08:33