Вопросы по теме 'dcg'

Подсчет рекурсий грамматики определенного предложения в Прологе
У меня есть следующая грамматика определенного предложения Prolog: s-->[a],s,[b]. s-->[]. Это приведет к тому, что такие слова, как [a,a,b,b], будут приняты в качестве противоположности таким словам, как [a,b,a,b]. Короче говоря,...
420 просмотров
schedule 20.07.2023

Разбор чисел с несколькими цифрами в Прологе
У меня есть следующий простой анализатор выражений: expr(+(T,E))-->term(T),"+",expr(E). expr(T)-->term(T). term(*(F,T))-->factor(F),"*",term(T). term(F)-->factor(F). factor(N)-->nat(N). factor(E)-->"(",expr(E),")"....
2122 просмотров
schedule 25.04.2023

Проблемы с DCG Пролога
Проект посвящен переводу полуестественного языка в таблицы SQL. Код: label(S) --> label_h(C), {atom_codes(A, C), string_to_atom(S, A)}, !. label_h([C|D]) --> letter(C), letters_or_digits(D), !. letters_or_digits([C|D]) -->...
398 просмотров
schedule 17.02.2024

Анализ переменных с помощью DCG
У меня возникли проблемы с разбором последовательностей, начинающихся с заглавных букв, в переменные с использованием нотации Prolog DCG. Например, если у меня есть строка f a X y Z X и DCG, который анализирует эту строку, есть ли способ...
387 просмотров
schedule 24.03.2023

Разбор на Прологе без выреза?
Я нашел этот хороший фрагмент для анализа lisp на Прологе (из здесь ): ws --> [W], { code_type(W, space) }, ws. ws --> []. parse(String, Expr) :- phrase(expressions(Expr), String). expressions([E|Es]) --> ws, expression(E), ws,...
1178 просмотров
schedule 13.12.2023

Покерная рука на Прологе
Я пытаюсь написать предикат для анализа обычных покерных комбинаций; например, учитывая список «карт», определите, есть ли у игрока 4 карты одного вида; 3 вида; пара и т. д.: Моя идея состояла в том, чтобы проверить наличие аналогичного ранга и...
1473 просмотров
schedule 16.05.2023

Пролог: Разделите слово на слоги, используя предикат Имя
Мне нужно прочитать слово от пользователя, а затем разбить его на слоги на основе одного из двух правил: гласный-согласный-гласный или гласный-согласный-согласный-гласный. Похоже, что предикат "имя" не работает, в выводе должно быть слово, а не...
546 просмотров
schedule 24.02.2024

Prolog dcg генерирует все слова из языка
Я пытаюсь написать грамматику dcg в прологе, которая будет описывать язык a^nb^n n>=0 "",ab,aabb,aaabbb itd Все, что я написал, s --> slowo. slowo --> [a],slowo,[b],!. slowo --> []. И это хорошо, пока все, что я хочу...
1069 просмотров
schedule 06.05.2022

Категоризировать список в Prolog
Итак, я пишу парсер для арифметических уравнений. Я получаю ввод в списке, например. "10+20" = [49,48,43,50,48] , а затем я конвертирую все цифры в соответствующие числа, например. [49,48,43,50,48] = [1,0,43,2,0] и оттуда я хочу собрать целые...
131 просмотров
schedule 08.01.2024

DCG для предпочтения идиоматических фраз
У меня есть созданное вручную правило DCG для выбора идиоматических фраз вместо отдельных слов. Правило DCG гласит: seq(cons(X,Y), I, O) :- noun(X, I, H), seq(Y, H, O), \+ noun(_, I, O). seq(X) --> noun(X). Первое предложение создается...
226 просмотров
schedule 18.07.2022

Стандартный способ увидеть, какая фраза / 3 переводится?
Я пытаюсь разобраться в поведении GNU Prolog: test(X,I,O) :- phrase(X,I,O). ?- test(("a",!,"b"),"ab",""). Есть ли стандартный способ увидеть, на что переводится фраза / 3? Согласно предложению ISO DCG (*), существует требование, чтобы у...
456 просмотров
schedule 01.08.2023

Как работает эта грамматика DCG Prolog, которая говорит, является ли строка римским числом?
При поиске в StackOverflow я нашел эту грамматику DCG, которая говорит, что строка представляет собой римское число и преобразует ее в десятичное число (в этом сообщении: Римские цифры Пролога (грамматики атрибутов) ): roman(N) -->...
265 просмотров
schedule 09.12.2022

Пытаетесь разбить элементы, которые являются списками в списке?
Я пытаюсь написать программу, которая сделает следующее: ?- g([2,3, [22,[3],9] ,4,[5],99],X). X= [2,3,22,[3],9 ,4,5,99] Таким образом, он ищет списки в данном списке и заменяет их их элементами без скобок []. Итак, я написал эту...
298 просмотров
schedule 08.04.2022

Разбор числовых данных с использованием Prolog?
Я новичок в прологе и рассматриваю возможность использования его для небольшого приложения для анализа данных. Вот что я пытаюсь выполнить: У меня есть файл CSV с некоторыми данными из следующего: a,b,c d,e,f g,h,i ... Данные чисто...
210 просмотров
schedule 11.01.2023

Пролог решает префиксное арифметическое выражение с неизвестной переменной
Я хочу создать арифметический решатель на Прологе, который может иметь операции +,-,*,^ над числами >= 2. Также должна быть возможность иметь переменную x. Ввод должен быть префиксным выражением в списке. Я сделал программу, которая анализирует...
2738 просмотров

разделить список до точки в прологе
my_list([this,is,a,dog,.,are,tigers,wild,animals,?,the,boy,eats,mango,.]). предположим, что это список в прологе, который я хочу разделить на три части до трех точек и сохранить их в переменных. Как мне это сделать... counthowmany(_, [],...
218 просмотров
schedule 25.04.2023

Прологовый сэндвич-предикат
Мне нужно сделать предикат sandwich(L) , который будет истинным, если он имеет одинаковые элементы в начале и в конце списка, например: sandwich([a,a,b,c,d,a,a]). Не могли бы вы мне помочь? Большое спасибо!
117 просмотров
schedule 05.10.2022

Может кто-нибудь объяснить, как выполнить унификацию, чтобы получить ответ в грамматике определенного предложения?
Я пытаюсь понять концепцию унификации в грамматике определенного предложения, может ли кто-нибудь объяснить шаг за шагом, как перейти от следующей DCG к ответу. s --> symbols(Sem,a), symbols(Sem,b). symbols(s(end),S) --> [S]....
99 просмотров
schedule 08.04.2022

DCG, который соответствует остальной части ввода
Это предикат, который делает то, что должен, а именно, собирает все, что осталось на входе, когда является частью DCG: rest([H|T], [H|T], []). rest([], [], []). но я изо всех сил пытаюсь определить это как DCG ... Или это вообще выполнимо?...
342 просмотров
schedule 06.05.2024

Программа Prolog Definite Clause Grammar для IPv4-адреса
В настоящее время я пытаюсь настроить небольшую программу для приема четырехъядерных строк IPv4 с точками в SWI. Пролог с использованием DCG (выйти из зоны комфорта во время отпуска? Да, я могу! ). Это, вероятно, займет у меня еще час или около...
110 просмотров
schedule 30.07.2022