Несогласованность при извлечении строкового представления фактов с помощью clipspy
Только начал работать с clipspy-0.3.3 в Python 3.8.3.
При извлечении фактов обнаружилась несогласованность в
.facts()
счетчик.
Код ниже
import clips
env = clips.Environment()
env.assert_string("(value 1)")
env.assert_string("(value 2)")
env.assert_string("(value 3)")
env.assert_string("(value 4)")
env.assert_string("(value 5)")
env.assert_string("(value 6)")
env.assert_string("(value 7)")
env.assert_string("(value 8)")
env.assert_string("(value 9)")
env.assert_string("(value 10)")
for fact in env.facts():
print(fact)
Дает результат
(initial-fact)
(value 1)
(value 2)
(value 3)
(value 4)
(value 5)
(value 6)
(value 7)
(value 8)
(value 9)
f-10 (value 10)
откуда видно несоответствие, в котором
- факты с номером меньше 10, предшествующие
f-1
удаляется из строки факта, и, - факты с числом равным или большим 10, предшествующие
f-10
не выпадает из строки факта.
Даже если указанное несоответствие можно устранить с помощью замены регулярного выражения, как показано ниже
import re
for fact in env.facts():
print(re.sub(r'^[^(]*',r'',str(fact)))
было бы хорошо, если бы строковое представление фактов было бы последовательно возвращено
.facts()
счетчик в
clispy
пакет.
1 ответ
Решение
Это похоже на ошибку в
clipspy
, Я бы посоветовал вам открыть вопрос о его репозитории.