Как скрыть модуль или весь пакет от трассировки.У меня есть этот запрос, и я хочу пройти через него, но меня не интересует, что делает CLP (X), только в какой момент что-то не получается в моем запросе.
?- X in 0..5, X in 7..8.
fail.
?- dif(A, 1), A = 1.
fail.
Если я выполню этот запросв SWI-Prolog он показывает мне каждую изящную деталь модуля CLP (X), не только некоторые вставки, связанные с ограничениями, но и все остальное из CLP (X):
Welcome to SWI-Prolog (threaded, 64 bits, version 8.1.2)
?- trace.
true.
[trace] ?- X in 0..5, X in 7..8.
Call: (9) clpfd:clpfd_in(_2662, 0..5) ? creep
Call: (10) clpfd:fd_variable(_2662) ? creep
Call: (11) var(_2662) ? creep
Exit: (11) var(_2662) ? creep
Call: (11) true ? creep
Exit: (11) true ? creep
[trace] ?- dif(A, 1), A=1.
Call: (9) dif:dif(_3044, 1) ? creep
Exit: (9) dif:dif(_3410{dif = ...}, 1) ? creep
Call: (9) _3410{dif = ...}=1 ? creep
Есть ли способподавить внутренние органы CLP (X).Например, если я использую другую систему Prolog, я не вижу никаких внутренних компонентов CLP (X) (Preview):
Jekejeke Prolog 3, Development Environment 1.3.6
?- trace.
Yes
?- X in 0..5, X in 7..8.
0 Call X in 0..5 ?
0 Exit X in 0..5 ?
0 Call X in 7..8 ?
0 Fail X in 7..8 ?
No
?- neq(A, 1), A = 1.
0 Call neq(A, 1) ?
0 Exit neq(A, 1) ?
0 Call A = 1 ?
0 Fail A = 1 ?
No
Есть ли элегантный способ отключить модуль / пакет, но тем не менее увидетьвызовы верхнего уровня / выходы из модуля / пакета?