Описание тега dcg
DCG (грамматики с определенными предложениями) - это компактный способ описания списков в Прологе.
3
ответа
Последовательные элементы в списке
Я блокирую предикат для кодирования в Прологе. Мне нужно кодировать эти два предиката: Если я позвоню: u([a,b,c,d,e,f], X). это даст X=[a,b], X=[b,c], X=[c,d]... Если я позвоню: v([a,b,c,d,e,f], X). это даст X=[a,b], X=[c,d], X=[e,f]... Большое спас…
08 июн '14 в 13:12
2
ответа
Пролог, реконструировать деревья BST из списка по порядку
Мы хорошо знаем inorder реализация для дерева BST. inorder(nil, []). inorder(t(Root, L, R), List) :- inorder(L, ListLeft), inorder(R, ListRight), append(ListLeft, [Root|ListRight], List). Однако возможно ли это сделать для списка? Я имею в виду реко…
20 май '16 в 11:50
1
ответ
Заменить термин с переменной в прологе
У меня есть DCG в Прологе, который я могу запросить так: q(Tree, [name, of, company], []). и получить ответ, который показывает мне путь, использованный для анализа запроса: Tree = q(['company (Class)', 'name (Attribute)']) Теперь я хотел бы задать …
09 апр '12 в 19:44
2
ответа
Проблемы с DCG (Пролог)
Я пытаюсь разработать это простое задание DCG (Пролог) для моего курса. Проблема заключается в создании DCG. Я уже определил Вселенную Дискурса в моем коде. Но этот вопрос немного вводит меня в заблуждение. Согласно тому, что я прочитал и знаю, испо…
22 май '13 в 17:53
4
ответа
Формулировка в прологе
В настоящее время у меня есть следующая проблема, которую я хочу решить с помощью Пролога. Это простой пример, который будет легко решить в Java/C/ что угодно. Моя проблема в том, что я считаю, что слишком привязан к мышлению Java, чтобы фактически …
05 окт '10 в 20:23
4
ответа
Переполнение стека в правиле грамматики Prolog DCG: как обрабатывать большие списки эффективно или лениво
Я разбираю довольно простой формат файла, состоящий из ряда строк, каждая строка имеет несколько полей, разделенных пробелами, который выглядит следующим образом: l 0x9823 1 s 0x1111 3 l 0x1111 12 ⋮ Я использую SWI-Prolog. Это DCG у меня так далеко:…
17 окт '12 в 17:19
1
ответ
Написание парологического пролога
Я пытаюсь написать простой парсер для грамматики. Синтаксическому анализатору не нужно создавать дерево разбора, он распознается только в том случае, если предложение соответствует грамматике. Пока у меня есть следующие предикаты, использующие нотац…
03 май '12 в 14:58
0
ответов
Синтаксическая ошибка в представлении DCG в Прологе?
Я пишу грамматику для игрового моделирования с использованием DCG пролога. Я предполагаю, что логика верна, я получаю следующие синтаксические ошибки. program --> envsetup, commands. envsetup --> boardsize, obstacles, itinerary, character. boa…
12 май '15 в 20:11
3
ответа
Есть ли способ или алгоритм для преобразования DCG в обычные определенные предложения в Прологе?
Я новичок в Прологе, и я пытаюсь понять, как грамматика может быть переведена в обычное определенное предложение из DCG. Я понял, что нотация DCG - просто синтаксический сахар для нормальных определенных предложений в Прологе. Я начал изображать нек…
01 май '15 в 19:16
1
ответ
Пролог, ошибка при запросе ложного утверждения
input :- read_line_to_codes(user_input, Input), string_to_atom(Input,Atoms), atomic_list_concat(Alist, ' ', Atoms), phrase(sentence(S), Alist), action(S). statement(Rule) --> [Noun, 'is', 'a', Object], { Rule =.. [Object, Noun]}. statement1(Rule)…
23 апр '13 в 15:56
4
ответа
Проверьте, является ли строка подстрокой в Прологе
Есть ли способ проверить, является ли строка подстрокой другой строки в Прологе? Я попытался преобразовать строку в список символов и впоследствии проверить, является ли первый набор подмножеством второго, что не кажется достаточно ограничительным. …
27 ноя '13 в 18:40
1
ответ
DCG состояние реализации алгоритма
Расстояние между длинной последовательностью и короткой последовательностью - это минимальное расстояние между короткой последовательностью и любой подпоследовательностью длинной последовательности, равное длине короткой последовательности. Расстоян…
22 май '16 в 13:02
1
ответ
Напишите грамматику Prolog DCG, которая обрабатывает среднее значение предложения, а также построит его дерево разбора.
У меня есть эта грамматика DCG, которая понимает и соглашается с такими фразами, как: [Джон, Пейнтс] и [Джон, Лайк, Мэри], управляя семантическим значением непосредственно в грамматике DCG с помощью параметров sentence2(VP) --> noun_phrase2(Actor…
21 май '13 в 16:08
3
ответа
Разбор в прологе без среза?
Я нашел этот хороший фрагмент для разбора LISP в Прологе ( отсюда): ws --> [W], { code_type(W, space) }, ws. ws --> []. parse(String, Expr) :- phrase(expressions(Expr), String). expressions([E|Es]) --> ws, expression(E), ws, !, % single sol…
15 июн '11 в 13:37
3
ответа
Пролог получает голову и хвост струны
Я пытаюсь обернуть свой мозг вокруг Пролога в первый раз (SWI-Пролог), и я борюсь с тем, что, я уверен, является основами. Я пытаюсь взять строку, такую как "пирог", и распечатать военную натовскую орфографию, чтобы она выглядела примерно так: spe…
13 апр '16 в 16:45
1
ответ
Определенный раздел Грамматики, как проверить, является ли строка символом?
Мне кажется, это хорошо, но это всегда дает ложь... и я не могу понять, почему. letter(X) --> [C], {"a"=<C, C=<"z", name(X,[C])}. Спасибо.
16 апр '17 в 11:13
2
ответа
Как мне указать DCG для действительного номера?
Я пытаюсь указать DCG для действительного числа, которое будет использоваться следующим образом: value(Number) --> valid_number(Number). В основном, проверка, является ли указанное значение числовым (это также может быть переменная, поэтому необх…
30 сен '15 в 16:14
3
ответа
Удаление пробелов из строк в Прологе
Я написал парсер в прологе. Я еще не закончил. Это часть кода. Следующим шагом является уничтожение всех пробелов в строке. parse(Source, Tree) :- kill_whitespace(Source, CleanInput), % remove whitespaces actual_parse(CleanInput, Tree). actual_parse…
16 янв '13 в 19:17
1
ответ
Проблема с рекурсией, не затрагивающая базовый вариант
Я работаю над следующим DCG: zero(1) --> [0], !. zero(N) --> { N < 1 }, [], !. zero(N) --> zero(1), { M is N - 1 }, zero(M). Он работает правильно для положительных тестовых случаев, например ?- phrase(zero(5), A). A = [0, 0, 0, 0, 0]. ?…
19 дек '14 в 21:55
1
ответ
Каков общий шаблон для создания dcg для ввода файла?
Кажется, мне всегда трудно писать DCG для разбора входных файлов. Но, похоже, все должно быть просто? Есть какие-нибудь советы или хитрости, чтобы думать об этой проблеме? Для конкретного примера, скажем, я хочу разобрать файл fasta. ( https://en.wi…
11 июл '15 в 12:06