Вопросы по теме '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 просмотров
schedule
08.09.2022
разделить список до точки в прологе
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