我有这两类事实。
vowel(a).
vowel(e).
consonant(b).
consonant(c).
现在我需要实现一个谓词字母/ 1。最明显的方式是:
letter(X):-vowel(X); consonant(X).
但是我需要在不使用的情况下定义这个谓词;运营商。 有什么想法吗?
答案 0 :(得分:2)
为letter(X)
定义两个单独的规则:
letter(X) :- vowel(X).
letter(X) :- consonant(X).
如果第一条规则不适用(即vowel(X)
不成立),则也会检查第二条规则。换句话说,如果vowel(X)
或consonant(X)
评估为true,那么letter(X)
也是如此。实际上,为谓词设置多个规则可以充当逻辑或。