我想在 Clips 中制作一个程序,它会生成一个数字的所有分区。首先,我从他的基本分区之类的数字开始:(1 1 1 1 1) 如果是数字 5,等等。
(deftemplate partition (multislot p) )
(deffacts facts (p 1 1 1 1 1) )
(defrule adds
(p $?a ?b ?c $?d)
(not (p $?a (+ ?b ?c) $?d))
(not (p (+ ?b ?c) $?a $?d))
(not (p $?a $?d (+ ?b ?c)))
=> (assert (p $?a (+ ?b ?c) $?d))
)
问题是,虽然代码看起来不错,但它在“not”行中有错误 - 我指定创建的新分区不应该已经存在于事实中。我不知道是什么问题,欢迎任何想法。谢谢