Этот вопрос является продолжением этого question.Ошибка утечки памяти Sicstus Prolog
Я бегу большое количество тестов в Sicstus прологе:
runtest:-
t1,
t2,
t3,
.
.
t100.
Каждый тест является автономным и будет печатать свой результат на экран. Между тестами нет разрыва, поэтому никакие данные не должны храниться/сохраняться между каждым тестом.
Моя проблема заключается в том, что Sicstus накапливает память и, наконец, попадет исключение: «Ошибка ресурса: недостаточная память»
Я пытался организовать мой тест, как это:
runtest:-
once(t1),
once(t2),
.
.
once(t100).
Но я все-таки попасть в проблема.
Есть ли другой способ рассказать Prolog о освобождении всей выделенной памяти между каждым вызовом теста?
Это очень помогло бы терминологически отделить этот стиль от общих провальных контуров. 'findall/3',' setof/3' имеют встроенные с ошибкой контуры. – false
Нет необходимости в 'once (T)', потому что 'T' хватает. – false