Bonjour,
j'essaie de créer une fonction qui découvre des relations:
Ca fonctionne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 related(a,b,rel1). related(b,c,rel47). related(c,d,rel19). flatten(Xs,Ys):-flatten(Xs,[],Ys). flatten([X|Xs],S,Ys):-list(X),flatten(X,[Xs|S],Ys). flatten([X|Xs],S,[X|Ys]):-atomic(X),X\=[],flatten(Xs,S,Ys). flatten([],[X|S],Ys):-flatten(X,S,Ys). flatten([],[],[]). relation(X,Y,Z):-related(X,Y,Z). relation(X,Y,Z):-related(X,M,R1),relation(M,Y,R2),append([R1],[R2],T),flatten(T,Z).mais c'est très laid...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ?- relation(a,d,X). X = [rel1,rel47,rel19] (0.000 sec) ; no
Sans flatten ca me donne [ab,[bc,cd]] parce que je n'arrive pas à écrire la dernière ligne de "relation" correctement. Ca fait une soirée complète maintenant, si quelqu'un pourrait m'aiguiller, ca serait très sympa.
Merci d'avance
Partager