【问题标题】:Prolog: sister/brother relationship序言:姐妹/兄弟关系
【发布时间】:2012-05-15 08:25:17
【问题描述】:

我正在尝试在 Prolog 中建立关系模型,但姐妹关系却失败了。我想知道对此有什么好的解决方案。我是初学者,这是我的第一个程序,欢迎任何帮助。

man(adam).
man(peter).
man(paul).
man(carlos).
man(willem).

woman(marry).
woman(eve).
woman(greta).
woman(lisa).

parent(adam, peter). 
parent(eve, peter).
parent(adam, paul).
parent(marry, paul).
parent(adam, willem).
parent(adam, lisa).
parent(eve, willem).
parent(eve, lisa).
parent(greta, adam).
parent(carlos, adam).

father(F, C) :-
   man(F),
   parent(F, C).

mother(M,C) :-
   woman(M),
   parent(M, C).

grandparent(P, C):-
   parent(P, K),
   parent(K, C).

sister(x,y) :-
   woman(x),
   mother(m, x),
   father(f, x),
   mother(m, y),
   father(f, y).

【问题讨论】:

  • 是的,确实如此。很酷的语言!
  • 是的,它是 :p 模式匹配是我在 prolog 中做过的最酷的任务(例如:解决数独)。另外,添加“作业”标签

标签: prolog relationship


【解决方案1】:

sister\2 谓词中的变量需要使用大写字母。在你的代码中你有小写字母,它们是原子,所以除非你有人叫xyfm,否则这总是会失败。

另外,添加 X \= Y 以防止 X 成为她自己的妹妹。

【讨论】:

    猜你喜欢
    • 2020-01-31
    • 2014-11-07
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    相关资源
    最近更新 更多