2016-10-08 1 views
0

Je voudrais créer un tableau de tableau. Par exemple: ((a b c) (d e f))Tableaux de tableaux dans 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))) 

Ce code me donne:

(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> 

Tous les conseils, s'il vous plaît?

Merci Nico

Répondre

1

Multifields ne peuvent pas être imbriquées. Je suggère d'utiliser des instances si vous devez imbriquer des valeurs:

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>