Analisando com DCGs no Esquema (sem Prolog)?
Pergunta
Muitas implementações Prolog-in-Scheme estão lá fora. Por exemplo. Kanren, Schelog.
Aparentemente, em "paradigmas da AI programação" implementos Norvig Prolog para-Lisp compilador em Lisp, a fim de usar gramática de cláusulas definidas.
Mas há uma maneira mais limpa mais simples? Talvez algum uso inteligente de embaixadores para evitar a implementação de um completo "Prolog"? Qual é a maneira mais fácil de ter a análise baseada em DCG no Esquema?
Solução
DCG usar tanto unificação e retrocesso, então não há como evitar a implementação do núcleo do Prolog. Ou seja, você pode representar qualquer programa Prolog puro como um DCG analisar a lista vazia.
Você pode fazê-lo se você só se preocupam com algum caso especial de DCG, como aqueles sem variáveis ??(bom apenas para reconhecer, não analisar).