0
在我的序言程序中,它成功地发现了当爱德华八世国王出生时是谁统治的,但由于某种原因也失败了。这里是我的代码一小块:为什么这个查询成功,并在序言中失败?
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'.
是什么原因造成的?
代码是好的;你可能在某处重复了一些子句。制作一个干净的源文件并重试。 :) – 2013-04-22 07:05:58