Результаты поиска по запросу "dcg"
Разбор выражения в Прологе и возврат абстрактного синтаксиса
Я должен написать parse (Tkns, T), который принимает математическое выражение в виде списка токенов и находит T, и возвращает инструкцию, представляющую абстрактный синтаксис, соблюдая порядок операций и ассоциативность. Например, ?- parse( [ ...
Чтение файла в прологе [дубликат]
Возможный дубликат: Читайте файл построчно в Прологе [https://stackoverflow.com/questions/4805601/read-a-file-line-by-line-in-prolog] Я нашел следующий код пролога, который читает по одному символу за один раз и печатает. process(File) :- ...
Что не так с моей программой пролога для решения 3 кувшинов с водой?
Может кто-нибудь узнать, почему у меня не может быть никаких истинных ответов с моим «go» в этом коде? Например, я пишуgo(7,3,l) и я предполагаю, что он должен переместить 3 литра воды во второй кувшин, но это неверно в соответствии с прологом. В ...
Пролог Список Плато
Просто познакомился с прологом, пытаясь выполнить несколько простых упражнений, но я застрял на этом. Я пытаюсь написать программу, которая выводит все подсписки списка ввода, где каждый подсписок имеет длину> 1, и его нельзя расширить до ...
Переполнение стека в правиле грамматики Prolog DCG: как обрабатывать большие списки эффективно или лениво
Я разбираю довольно простой формат файла, состоящий из ряда строк, каждая строка имеет несколько полей, разделенных пробелами, который выглядит следующим образом: l 0x9823 1 s 0x1111 3 l 0x1111 12 ⋮Я использую SWI-Prolog. Это DCG у меня ...
Удалите Неоднозначность в абстрактном синтаксисе, чтобы написать DCG-парсер Prolog
P => Программа K => Блок S => одиночная команда C => Команды E => Выражение B => Boolean-expr I => Идентификатор N> цифра P :: = K. K :: = начало C конец C :: = C1; С2 | S S :: = I: = E | если (B), то S | если (B), то S1 еще S2 | в то ...
Расширение DCG: Стойкость игнорируется?
Предположим, у меня есть следующее правило DCG: factor(X) --> "(", expr(X), ")".Обычно это будет переведено на: factor(X, A, B) :- [40|C] = A, expr(X, C, D), [41|B] = D.Разрешено ли системе Пролога переводить ее следующим образом, ...
Пролог - перевод с английского на C
У нас есть относительно простое задание, которое я понимаю в теории, но я думаю, что просто не совсем понимаю синтаксис Пролога, чтобы включить его в код. По сути, у нас есть список английских обозначений, которые представляют операции в C. Они ...
Очень простой синтаксис пролога dcg
Я пытаюсь понять пролог и грамматику определенного предложения, но мне очень трудно понять их оба. Я действительно пытаюсь понять, как использовать синтаксис DCG ... Здесь у меня есть два примера: Первый на самом деле код из другого вопроса на ...
Раскрась список в Прологе
Я работаю с Прологом всего пару дней. Я понимаю некоторые вещи, но это меня действительно смущает. Я предполагаю написать функцию, которая берет список и выравнивает его. ?- flatten([a,[b,c],[[d],[],[e]]],Xs). Xs = [a,b,c,d,e]. % expected ...