2015-01-10 21 views
1

我正在用剪輯寫一個項目,其中有一些協調實體(棋盤遊戲的正方形)。我定義自己的模板,像這樣:在剪輯中返回兩個值函數

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

所以我希望有一個功能,可以讓像正確方向的說法,左,上,下和X,Y COORDS並返回廣場趴在的COORDS?那個方向(接近當前的那個方向)。

問題是函數可以返回一個值,而我需要x,y。

我已經試過

(return ?x ?y) 

(return (?x ?y)) 

但他們都給出語法錯誤。

有沒有辦法實現,或我需要解決它?

謝謝你的時間。

回答

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>