在剪辑功能中返回两个值

时间:2015-01-10 12:26:34

标签: clips

我正在剪辑中写一个项目,我有一些协调的实体(棋盘游戏的方格)。我像这样定义他们的模板:

(deftemplate square
    (slot x (type INTEGER))
    (slot y (type INTEGER))
)

所以我想要一个能够获得方向参数的函数,如右,左,上,下和?x,?y coords,并返回位于该方向的方形的坐标(与当前方向接壤)。

问题是函数可以返回单个值,而我需要x,y。

我试过了

(return ?x ?y)

(return (?x ?y))

但它们都会出现语法错误。

有没有办法实现这一点,或者我需要解决它?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

使用create $在多字段值中放置多个值。然后,您可以使用nth $检索单个值:

CLIPS> 
(deffunction direction ()
   (return (create$ 1 -1)))
CLIPS> (direction)
(1 -1)
CLIPS> (nth$ 1 (direction))
1
CLIPS> (nth$ 2 (direction))
-1
CLIPS>