Пролог-системы с зависанием при проверке

user884463 поставил интересную задачу о проверке. Сопрограмма, поддерживающая проверку событий, может быть реализована следующим образом с предикатом with_occurs_check/2, который можно легко реализовать как уточнение with_occurs_check/1:

      occurs_check_aware_freeze(X, G) :-
    current_prolog_flag(F), 
    freeze(X, with_occurs_check(F, G)). 

А именно, используя with_occurs_check/2 с дополнительным параметром. Но остается основная проблема реализации with_occurs_check/[1,2], которая также работает с возвратом. Так как проснувшиеся цели могут оставлять точки выбора, и мы не хотим утечек.

Решат ли механизмы Пролога каким-то образом проблему, как предполагает Дэвид Тонхофер? Существуют ли какие-либо системы Prolog, в которых уже реализовано замораживание при проверке событий?

0 ответов

Другие вопросы по тегам