prolog例子1

例子来自:Prolog是如何回答问题的

  1. 请看下图:

"alt"

我们的目的是要在上面表格中白色的方格(带有LXX标识的方格)里面填上英文单词,可供选择的单词有:

word(d,o,g).    word(r,u,n).    word(t,o,p).    word(f,i,v,e). word(f,o,u,r).  word(l,o,s,t).  word(m,e,s,s).  word(u,n,i,t). word(b,a,k,e,r). 
word(f,o,r,u,m). word(g,r,e,e,n). word(s,u,p,e,r). word(p,r,o,l,o,g). word(v,a,n,i,s,h). word(w,o,n,d,e,r). word(y,e,l,l,o,w).

试着写出一个规则solution.

solution(L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16).
分析:单词1和单词3共享字母“L1”,单词4和单词1共享字母“L3”,单词4和单词2共享字母“L12”,依次类推,我们可以把所有的约束都写出来。这样,我们就告诉Prolog系统最后的答案长得什么样

应该这么写:

solution(L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16):-
    word(L1,L2,L3,L4,L5),                  #单词一
    word(L9,L10,L11,L12,L13,L14),          #单词二
    word(L1,L6,L9,L15),                    #单词三
    word(L3,L7,L11),                       #单词四
    word(L5,L8,L13,L16).                   #单词五                

写prolog文件word.pl的代码:

运行结果:

即 1 forum;2 vanish ;3  five;4 run;5 mess ;

原文地址:https://www.cnblogs.com/hozhangel/p/7778771.html