例如,如果我声明类型:
:types
bag
light heavy - bag
也就是说有两种类型的包, light 和 heavy 。是否可以在操作中检查 bag 类型的变量是否为 light 类型而没有 light 的实例进行比较?
我知道可以进行相等比较:
(when ( = ?light ?bag))
但是这会检查两个变量是否具有相同的值,而不是相同的类型。
我尝试了(when ( = light ?bag))
,即使规划人员没有提出错误,但它似乎无效。
答案 0 :(得分:2)
回应Chaos教授'如果他们说明这是不可能的,那么我已经推导出一种解决方法,我们在操作中创建谓词(is_light ?x - light)
并使用(when (is_light ?lightobj) (dosomething))
。初始化 light 对象时,在问题文件中使用谓词。