2016-10-08 15 views
0

配列の配列を作成したいと思います。たとえば、 :((B c)は(D EがF))CLIPSの配列の配列

(bind ?part1 (create$ a b c)) 
(bind ?part2 (create$ d e f)) 
(bind ?structure (create$)) 
(bind ?structure (insert$ ?structure 1 (create$ ?part1))) 
(bind ?structure (insert$ ?structure 2 (create$ ?part2))) 

このコードは、私を与える:

(bind ?part1 (create$ a b c)) 
(a b c) 
CLIPS> (bind ?part2 (create$ d e f)) 
(d e f) 
CLIPS> (bind ?structure (create$)) 
() 
CLIPS> (bind ?structure (insert$ ?structure 1 (create$ ?part1))) 
(a b c) 
CLIPS> (bind ?structure (insert$ ?structure 2 (create$ ?part2))) 
(a d e f b c) 
CLIPS> 

任意のヒント、してください?

はMultifieldsは入れ子にすることができないあなたに ニコ

答えて

1

ありがとうございます。値をネストする必要がある場合は、インスタンスを使用することをおすすめします。

CLIPS> (defclass VALUES (is-a USER) (multislot values)) 
CLIPS> (make-instance v1 of VALUES (values a b c)) 
[v1] 
CLIPS> (make-instance v2 of VALUES (values d e f)) 
[v2] 
CLIPS> (make-instance v3 of VALUES (values [v1] [v2])) 
[v3] 
CLIPS>