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

Ввод в Пролог
В настоящее время я работаю над рекурсивной программой Prolog, чтобы связать маршруты вместе, чтобы создать базовый GPS в районе Бирмингема. На данный момент я могу получить такой вывод: Ввод routeplan(selly_oak, aston, P). Вывод...
6552 просмотров
schedule 30.05.2024

SWI-Prolog в семантической сети
Я хотел бы услышать мнение людей, которые имеют реальный опыт программирования в использовании семантической библиотеки SWI-Prolog. Изменить: Причина этого вопроса в том, что среди многих людей, с которыми я разговаривал с опытом пролога,...
3017 просмотров
schedule 29.12.2022

Генерация строки символов (предложения) для данной контекстно-свободной грамматики
У меня есть простая грамматика, такая как S::=a S b S::=[] (empty string) Теперь я хочу написать парсер для приведенной выше грамматики, например cfg('S', [a,'S',b]) который генерирует предложение aaabbb по самому левому...
1230 просмотров
schedule 16.05.2022

Что не так с моей прологовой программой для решения головоломки с тремя кувшинами с водой?
Может ли кто-нибудь найти, почему у меня нет верных ответов с моим «переходом» к этому коду? Например, я пишу go(7,3,l) и предполагаю, что он должен переместить 3 литра воды во второй кувшин, но согласно прологу это неверно. Что случилось? :-...
1565 просмотров
schedule 19.02.2023

Плато списка пролога
Только что познакомился с прологом, пытаясь выполнить несколько простых упражнений, но я как-то застрял на этом. Я пытаюсь написать программу, которая выводит все подсписки входного списка, где каждый подсписок имеет длину> 1, и его нельзя расширить...
726 просмотров
schedule 28.09.2023

Измените DCG на детерминированный
как изменить эту грамматику, чтобы она была детерминированной e --> []. e --> "*". e --> s_e. e --> e, s_e. s_e --> ("a",e);("b",e). Я просто не знаю, где поставить сокращение, чтобы избежать возврата.
319 просмотров
schedule 21.03.2024

простой dcg лексер
Привет, я пишу простой лексер :- module(lekser, [lekser/3]). lekser(Tokens) --> white_space, ( ( "{", !, { Token = tkLBrace } ; "}", !, { Token = tkRBrace } ; ")", !,...
1415 просмотров
schedule 29.03.2024

Обход дерева в обратном порядке на Прологе
Обход дерева относится к процессу систематического посещения каждого узла в древовидной структуре данных. Обход postorder на следующем изображении Sorted_binary_tree возвращает A, C, E, D, B, H, I, G, F (left, right, root) . Код Пролога...
3380 просмотров
schedule 11.03.2022

обработка ввода в прологе с помощью read()
Я использую read() для ввода данных пользователем. Я планировал, что моя программа будет принимать ввод в виде a,b,c,d,e а затем я бы преобразовал это в список элементов. Но делая тест в прологе, я получил это 26 ?- read(X). |:...
315 просмотров
schedule 14.09.2023

Список пролога. Проверьте, похож ли первый и последний элемент в списке
Пример: firstlast([1,2,3,4,1]). true; firstlast([1,2,3,4]). false; firstlast([5,10,4,3]). false; exc... Проблема в том, что мне разрешено использовать рекурсию только с предикатом firstlast. ? Я действительно пытался сломать это, но,...
3368 просмотров
schedule 12.07.2023

Пролог — Превращение списка в список предложений
Я пытаюсь использовать метапрограммирование и DCG, чтобы превратить список в список предложений, используя Prolog. Например, я хотел бы превратить [a, man, is, a, human] в [ (human(X) :- man(X))] Я подумал, что могу использовать =.. для...
482 просмотров
schedule 07.08.2023

Пытаемся разобраться в парсере DCG в прологе
Недавно я играл с DCG в Прологе, но столкнулся с некоторыми проблемами, касающимися того, как именно это работает. Например, у меня есть такая маленькая грамматика: <atom> :: <letter> <atom_part> | <letter>...
534 просмотров
schedule 06.04.2022

Написание элементов в консоли Prolog
В прологе я делаю что-то вроде этого: ************************ * * * ########## * * # button # * * ########## * * * ************************...
114 просмотров
schedule 16.02.2024

Пролог, грамматика с определенными предложениями
Код, который я написал для грамматики определенных предложений. Я очень внимательно следил за книгой "Learn Prolog Now" lex(the,det(single)). lex(the,det(plural)). lex(a,det(single)). lex(some,det(plural)). lex(at,det(single))....
281 просмотров
schedule 23.04.2023

Пролог - числа больше x
Я работаю с арифметикой Пролога и имею программу, которая генерирует абстрактное синтаксическое дерево, такое как plus(num(1),num(2)) , которое просто 1+2 . Это делается с помощью DCG. В этом примере plus(num(1),num(2)) совпадает с...
665 просмотров
schedule 22.01.2023

Prolog DCG возвращает форум вместо значения
Я пытаюсь научиться использовать DCG и столкнулся с проблемой, когда возвращаемое значение, которое я получаю, представляет собой формулу, а не сумму формулы, например, A = 1+3*20 вместо A = 61. . Что я делаю не так? Я пытался ввести dansk(A)...
110 просмотров
schedule 06.04.2024

Prolog DCG для разбора экранированных последовательностей
Мне нужно разобрать строку ^borrow$ ^\$500$ в список [borrow, $500] . Грамматика, которую я написал до сих пор, :- use_module(library(dcg/basics)). write_list([]). write_list([H|T]) :- atom_codes(S, H), write(S), nl, write_list(T). %...
158 просмотров
schedule 07.11.2023

Синтаксический анализ переменных Пролога с помощью DCG
Я хочу проанализировать логическое выражение с помощью DCG в Прологе. Логические термины представлены в виде списков, например ['x','&&','y'] для x ∧ y результатом должно быть дерево синтаксического анализа and(X,Y) (были X и Y...
666 просмотров
schedule 11.02.2022

Застрял на переводе cfg в dcg
Я пытаюсь научить себя прологу и реализовать интерпретатор для простой арифметики cfg: <expression> --> number <expression> --> ( <expression> ) <expression> --> <expression> + <expression>...
308 просмотров
schedule 30.07.2022

Значение --› в swi-prolog
Я новичок в птологе. Недавно я видел кусок кода. Я хочу знать значение некоторых его частей и как их использовать. код, как показано ниже: MatrixTconcat([]) --> []. matrix_tconcat([Cs|Css]) --> row_rows_rest_(Cs,Css,Mss),...
171 просмотров
schedule 07.09.2023