Bonjour !
Voilà j'ai deux listes qui contiennent des variables liées et d'autres libres.
Je fais l'union des deux, et je souhaitrai supprimer toutes les variables libres. Comment puis-je procéder ?
Voici un extrait de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 init(Tab) :- Tab = [ E11, E12, E13, E14, E21, E22, E23, E24, E31, E32, E33, E34, E41, E42, E43, E44 ]. fill(Tab) :- Tab = [ _,4,3,_, 1,_,_,2, _,_,1,_, 3,_,_,4 ]. search_solution(Tab) :- Tab = [ E11, E12, E13, E14, E21, E22, E23, E24, E31, E32, E33, E34, E41, E42, E43, E44 ], L1 = [ E11, E12, E13, E14 ], C1 = [ E11, E21, E31, E41 ], M1 = [ E11, E12, E21, E22 ], append(L1,C1,RES), print(RES),nl.
Sortie : [_G279,4,3,_G288,_G279,1,_G303,3]
Ici, je souhaiterai que la liste RES ne contienne que 4, 3 et 1.
J'ai bien penser à utiliser list_to_set, mais le problème est que l'utilisation de ce prédicat lie la variable E11 à la première valeur de la liste obtenue, soit 4.
Merci !
Partager