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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
**************** Membrefamille.pl *** **************/
%présentation des faits :
 
feminin(claude).           %se lit «claude est feminin»
 
feminin(sophie).
 
feminin(alice).
 
feminin(mathilde).
 
feminin(morgane).
 
feminin(lucile).
 
feminin(lisa).
 
feminin(anne)
 
masculin(sam).             %se lit «sam est masculin»
 
masculin(olivier).
 
masculin(leo).
 
masculin(marc).
 
masculin(gilles).
 
masculin(mathieu).
 
masculin(pierre).
 
masculin(pascal).
 
masculin(francis).
 
masculin(thomas).
 
mere(claude, sophie).         %se lit «claude est la mère de sophie»
 
mere(claude, gilles).
 
mere(claude, mathieu).
 
mere(claude, anne).
 
mere(lucile, lisa).
 
mere(lucile, alice).
 
mere(sophie, mathilde).
 
mere(sophie, leo).
 
mere(morgane, marc).
 
mere(anne, francis).
 
pere(sam, sophie).                 %se lit «sam est le père de sophie»
 
pere(sam, gilles).
 
pere(sam, mathieu).
 
pere(sam, anne).
 
pere(olivier, mathilde).
 
pere(olivier, leo).
 
pere(gilles, marc).
 
pere(pascal, francis).
 
pere(mathieu, lisa).
 
pere(mathieu, alice).
 
 
parent(X, Y):- mere(X, Y); pere(X, Y).
 
%se lit «X est_parent de Y si est seulement si «X est_mère de Y» OU
logique «X est_père de Y»
 
grandparent(X, Y):- parent(X, T), parent(T, Y).
 
%se lit «X est_grandparent de Y» si est seulement si «X est_parent de T»
ET logique «T est_grandparent de Y»
 
frere(X, Y):- masculin(X), parent(Z, X), parent(Z, Y).
 
%se lit «X est_masculin» et «Z est_parent de X», et «Z est_parent de Y» 
 
soeur(X, Y):- feminin(X), parent(Z, X), parent(Z, Y).
 
fille(X, Y):- feminin(X), parent(Y, X).
 
fils(X, Y):- masculin(X), parent(Y, X).


Bonjour,

Je voudrais savoir avec ce fichier:

quand je tappe dans prolog

frere(X, Y) il m'envoit cette erreur :

error: toplevel undefined procedure : frere/2 (DWIM could not correct goal)

et meme quand je change dans le fichier membrefamille.pl

frere pour mettre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
frere(X, Y):- masculin(X), parent(Z, X), parent(Z, Y), different(X, Y).
 
different(X, Y):- not(X = Y).        %se lit «X est différent de Y»
 
%se lit «X est_masculin» et «Z est_parent de X», et «Z est_parent de Y» et «X est_différent de Y» 
 
et :
 
soeur(X, Y):- feminin(X), parent(Z, X), parent(Z, Y), different(X, Y).
j'ai toujours la meme erreur quand j'appelle

frere(X, Y)

je viens que de commencer à comprendre cette programmation prolog.

merci de m'aider.