私のプロローグ プログラムでは、エドワード 8 世が生まれたときの統治者を見つけることには成功しますが、何らかの理由で失敗することもあります。ここに私のコードの小さなチャンクがあります:
reigned('Queen Victoria', 1819, 1901).
reigned('King Edward VII', 1901, 1910).
reigned('Queen Elizabeth II', 1952, 2013).
born('King George V', 1865).
born('King Edward VIII', 1894).
born('King George VI', 1895).
born('Prince Henry', 1984).
regentWhenBorn(X, Y) :- reigned(X, Begin, End), born(Y, Born),
Begin =< Born, Born =< End.
これはプロローグが表示するものです:
?- regentWhenBorn(Who, 'King Edward VIII').
Who = 'Queen Victoria' ;
false.
または別の人のために..
?- regentWhenBorn(Who, 'Prince Henry').
Who = 'Queen Elizabeth II' ;
Who = 'Queen Elizabeth II'.
これは何が原因ですか?