我正在尝试创建一个显示问题解决方案的程序,我需要一种方法来显示它创建的解决方案。我有两个可以用来解决问题的操作,它们被称为重要的顺序。如何显示解决方案?
test(a) :- write('use a ').
test(b) :- write('use b '), fail.
test(c) :- test(a), test(b), test(a).
test(c) :- test(a), test(a).
请注意这是一个例子,不应该从字面上理解。将测试(a)和测试(b)视为操作和测试(c)作为检查哪个订单有效的功能。
现在test(c).
将打印甚至失败的。导致输出“使用用户使用用户”。
可能会显示一些代码? – lurker
最优雅的方法是让Prolog顶层显示解决方案。定义一个谓词'solution(S)',如果'S'是一个解就是真的。当你查询'? - solution(S).'时,顶层将显示你的解决方案。 – mat
写入将不起作用...为了打印它在测试下一步之前必须先发送的消息,导致即使该消息不起作用也会打印该消息,否则它将会倒退。 – johndoe