Есть ли способ изменить порядок правил CHR во время выполнения в прологе?
Я пишу программу на Прологе для художественных целей, сильно полагаясь на большой набор правил CHR. Я хотел бы иметь возможность запускать много раз, но каждый раз выводить разные результаты. Самый простой способ сделать это - каждый раз недетерминированно изменять порядок ограничений.
Например, для формы стихотворения мне может понадобиться форма ABAB или ABAC. Тогда я хотел бы написать:
stanza <=> verse(A,0), verse(B,1), verse(A,2), verse(B,3)
stanza <=> verse(A,0), verse(B,1), verse(A,2), verse(C,3)
Я бы хотел, чтобы первое правило иногда срабатывало, когда stanza
присутствует, и для второго правила иногда стрелять. Как я мог этого добиться с помощью CHR?