Sintaxe de prólogo dcg muito básica
Eu estou tentando entender o prólogo e gramática de cláusula definida, mas estou tendo muita dificuldade em entender os dois.
Eu estou realmente tentando entender como usar a sintaxe dcg ...
Aqui eu tenho dois exemplos:
O primeiro é, na verdade, o código de outra pergunta neste fórum, mas com uma pergunta adicional:
O código ficou assim:
s --> first, operator, second.
first --> [X].
operator --> ['+'].
second --> [X].
E quando o Prolog é perguntado sobre isso, ele retorna verdadeiro / falso, mas eu não posso, para a vida de mim, descobrir como realmente modificá-lo para "ligar" o valor, se for perguntado s (X, [2, +, 2] []. ele retornaria o valor de primeiro, então ao invés de retornar true ele diria X = 2
De qualquer forma de volta para a questão real. Eu tenho algumas regras no prólogo normal e esta é uma delas; na verdade, não faz nada e foi apenas inventado como exemplo.
do(X, Y, [H|T], Sum):-
H == 1, %check if H is 1
X = H,
Y = T,
Additional is H+5,
Sum is Additional+Additional.
Basicamente, estou perguntando se alguém poderia traduzir isso para o DCG para que eu pudesse tentar entender a sintaxe básica do DCG! Eu tentei ler alguns tutoriais, mas eu sinto que não fiquei mais sábio ...