Вопросы по теме '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