规则R_blup
的LHS包含
(test (>= ?s2 2))
即,它检查?s2
是否大于或等于2. ?s2
对应于名为s2
的实例槽。
不幸的是,我收到了错误
Function >= expected argument #1 to be of type integer or float
问题是我的代码在设置参数#1之前执行(test ...
,即在我可以将s2
设置为整数或浮点值之前。 s2
应该被设置为python调用中的一个整数,该整数由另一个规则R_blah
触发。
错误是在属于另一个规则R_xyz
的另一个python调用的中间触发的。此python-call通过clips_instance.Slots["slot_name"] = some_value
修改实例。
这是如何正常处理的?我看到了三个我不太喜欢的解决方案:
s2
设置默认(整数)值。(test ...
以nil
进行检查。s2
不再是nil
是否可以尝试/除/传递错误?
答案 0 :(得分:1)
使用函数object-pattern-match-delay延迟模式匹配,为一系列更改创建原子操作:
channel_timeout