不使用谓词;

时间:2014-06-14 19:17:50

标签: prolog

我有这两类事实。

vowel(a).
vowel(e).

consonant(b).
consonant(c).

现在我需要实现一个谓词字母/ 1。最明显的方式是:

letter(X):-vowel(X); consonant(X).

但是我需要在不使用的情况下定义这个谓词;运营商。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

letter(X)定义两个单独的规则:

letter(X) :- vowel(X).
letter(X) :- consonant(X).

如果第一条规则不适用(即vowel(X)不成立),则也会检查第二条规则。换句话说,如果vowel(X)consonant(X)评估为true,那么letter(X)也是如此。实际上,为谓词设置多个规则可以充当逻辑或。