Что подразумевается под "логической чистотой" (в контексте программирования Prolog)? logical-purity информация о тегах говорит, что "программы, использующие только Horn clauses", но тогда, как предикаты, такие как if_/3, будут квалифицироваться, используя столько же, сколько и сокращение, и различные мета-логические (что означает правильная терминология? var/1 и такие) предикаты, то есть низкоуровневые вещи.
Я понимаю, что он достигает некоторого "чистого" эффекта, но что это значит?
Для более конкретной иллюстрации, пожалуйста, объясните, как if_/3 квалифицируется как логически чистый, видимый при использовании, например. в этом ответе?