【发布时间】:2026-01-21 13:55:02
【问题描述】:
我正在学习 Clips 编程,但遇到了一个问题。我正在尝试使用 if-then-else 语句并测试两个全局变量是否相等。到目前为止,我有以下代码:
(defglobal ?*count_x* = 0)
(defglobal ?*count_y* = 0)
(defrule if_then_else
?x <- (?*count_x*)
?y <- (?*count_y*)
=>
(if (eq ?x ?y)
then
(printout t "Yes, they are equal. " crlf)
else
(printout t "No, they are not equal." crlf)
(printout t "x: " ?*count_x* crlf)
(printout t "y: " ?*count_y* crlf))
(retract ?x)
(retract ?y)
)
这不是所有代码,计数器增加得很好,但这是不能正常工作的部分。有没有办法在不用 defrules 替换全局变量的情况下做到这一点?任何帮助将不胜感激,谢谢。
【问题讨论】: