さて一致させる必要があり、特定の事実のフォーマットを持っています事実は正しく。私はいくつかの方法を試しましたが、私はこれについて私の理解に根本的に何か間違っていると思います。これは問題に関する私のコードの一部です:Prologは私は基本的に私の先生は私たちに事実のために特定の形式を与え、私は
male(X) :- m(Males), member(X, Males).
female(X) :- f(Females), member(X, Females).
parent(X,Y) :- (family([X,_,Child]); family([_,X,Child])), member(Y,Child).
m(['David', 'Lance', 'Charles', 'George', 'Henry', 'Jose', 'Lenny', 'Vance', 'Rhett', 'Jacob', 'Mike']).
f(['Sarah', 'Tammy', 'Jasmine', 'Cassondra', 'Kat', 'Laura', 'Tamarah', 'Nina', 'Stephanie', 'Christen', 'Shannon', 'Maryalice']).
family(['David', 'Sarah', ['George', 'Kat']]).
しかし私は試してみますか? - 男性(ホセ)。それはJose = 'David'を返します。誰が何が間違っているかについていくつかの洞察を持っていますか?私は本当に助けに感謝します。
編集: ありがとうございました。私はそれが単なる単純な間違いだったと思うが、私は助けなしにそれを実現しただろうとは思っていない。私は今働いている。
'Jose'は**プロローグ**変数です。おそらく '? - male( 'Jose')に問い合わせることを意味していました。' 'Jose ''の一重引用符に注意してください。 – mat
それは、ありがとう。 –