我正在尝试解决狐狸、鹅和谷物之谜(农民只能将自己和三个人之一运送过河),并遵循此处给出的代码:http: //hilltop.bradley.edu/ ~chris/prolog.html(大约 4/5 进入文档)
基本上,代码告诉 Prolog 哪些动作是有效的,然后 Prolog 会从中计算出答案。
%[Farmer_position, Fox_position, Goose_position, Grain_position]
graph([w,w,w,w],[e,w,e,w]).
graph([e,w,e,w],[w,w,e,w]).
graph([w,w,e,w],[e,w,e,w]).
graph([w,w,e,w],[e,e,e,w]).
graph([w,w,e,w],[e,w,e,e]).
graph([e,e,e,w],[w,w,e,w]).
graph([e,e,e,w],[w,e,w,w]).
graph([e,w,e,e],[w,w,w,e]).
graph([e,w,e,e],[w,w,e,w]).
graph([w,w,w,e],[e,e,w,e]).
graph([w,w,w,e],[e,w,e,e]).
graph([e,e,w,e],[w,e,w,e]).
graph([e,e,w,e],[w,w,w,e]).
graph([e,e,w,e],[w,e,w,w]).
dfs([w,w,w,w],[[e,e,e,e]],answer).
?- dfs([w,w,w,w],[[e,e,e,e]],answer).
但是,我无法让 Prolog 显示答案。难道我做错了什么?我正在使用 SWI-Prolog,作为 IDE,我正在使用 SWI-Prolog-Editor。
编辑:为了清楚起见,它可以编译,只是没有显示“答案”变量的“值”。