Вопрос

Существует множество реализаций Prolog-in-Scheme.Например.Канрен, Шелог.

Очевидно, в «Парадигмах программирования искусственного интеллекта» Норвиг реализует компилятор Prolog-to-Lisp в Lisp, чтобы использовать грамматики определенных предложений.

Но есть ли более простой и чистый способ?Может быть, какое-нибудь умное использование amb, чтобы избежать реализации полного «Пролога»?Каков самый простой способ синтаксического анализа на основе DCG в Scheme?

Это было полезно?

Решение

DCG используют как унификацию, так и возврат с возвратом, поэтому невозможно избежать реализации ядра Пролога.То есть вы можете представить любую программу на чистом Прологе как DCG, анализирующую пустой список.

Вы можете сделать это, если вас интересует только какой-то особый случай DCG, например, без переменных (подходит только для распознавания, а не для анализа).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top