Domanda

Molte implementazioni di Prolog-in-Scheme sono disponibili. Per esempio. Kanren, Schelog.

Apparentemente in " Paradigms of AI Programming " Norvig implementa il compilatore Prolog-to-Lisp in Lisp per usare le grammatiche a clausole definite.

Ma esiste un modo più semplice e pulito? Forse un uso intelligente di amb per evitare di implementare un "Prolog" completo? Qual è il modo più semplice per eseguire l'analisi basata su DCG in Scheme?

È stato utile?

Soluzione

I DCG usano sia l'unificazione che il backtracking, quindi non si può evitare di implementare il core di Prolog. Cioè, puoi rappresentare qualsiasi programma Prolog puro come un DCG che analizza l'elenco vuoto.

Potresti farlo se ti interessa solo un caso speciale di DCG, come quelli senza variabili (buono solo per riconoscere, non analizzare).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top