下面看看 Prolog 如何解决实际问题。
我们知道,地图的相邻区域不能使用同一种颜色。现在有三种颜色:红、绿、蓝。请问如何为上面这幅地图着色?
首先,定义三种颜色。...然后,定义着色规则。...上面代码中,colorify(A,B,C,D,E)是一个对 ABCDE 五个变量求值的表达式。该表达式为true的条件是,这五个变量各自为一种颜色,则相邻的变量不相等。...最后,这两段代码合在一起,组成一个脚本map.pl,再加载这个脚本。
?- [map].
true....执行表达式colorify(A,B,C,D,E),SWI-Prolog 就会将三种颜色依次赋值给变量,测试哪些组合是可能的结果。
?- colorify(A,B,C,D,E).