1

例如,如果我这样声明类型:

:types
   bag
   light heavy - bag

也就是说有两种类型的包,的和重的。是否可以在一个动作中检查bag类型的变量是否是light类型而没有要比较的light实例?

我知道可以进行平等比较:

(when ( = ?light ?bag))

但这会检查两个变量是否具有相同的值,而不是相同的类型。

我试过(when ( = light ?bag))了,即使规划器没有抛出错误,它似乎也不起作用。

4

1 回答 1

2

为了回应 Chaos 教授的评论,他们说这是不可能的,我得出了一个解决方法,我们创建谓词(is_light ?x - light)(when (is_light ?lightobj) (dosomething))在操作中使用。初始化灯光对象时,该谓词在问题文件中使用。

于 2017-10-30T11:36:32.343 回答