Prolog/推理引擎
外貌
< Prolog
本文需要专家关注!
默认情况下,Prolog 进行自顶向下逻辑推理。
示例
clever(joe).
handsome(joe).
hasgirlfriend(X):-
clever(X),handsome(X).
我们以“hasgirlfriend(X).”运行,以获取有女朋友的人员。
双向推理
clever(joe).
handsome(joe).
rule([handsome(joe),clever(joe)],(hasgirlfriend(joe))).
run:- call(rule(X,Y)),findall(A,(member(A,X),call(A)),L),
length(X,Rulelength),
length(L,Rulelength),
assert(Y),print(Y).
我们以“run.”运行。
我们不必直接询问谁有女朋友,它向我们提供所有可以推断出的结果。双向推理的好处是提高了速度。