Есть ли способ изменить порядок правил 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?

0 ответов

Другие вопросы по тегам