1

Let b, c and d be facts or rules

x(A) :- b(A);c(A);d(A)

vs

x(A) :- b(A)
x(A) :- c(A)
x(A) :- d(A)

Is there a difference in semantics between the two definition of the rule x ? In my opinion I believe they are the same, because every rule of x can be interpreted as either the first rule of x or the second or third.

lurker
  • 56,987
  • 9
  • 69
  • 103
  • 2
    There is no difference, if the definition is `static` and `private`. In many systems that is the default. If not, either `clause(x(X), Body)` succeeds (with different answers for `Body`), or even `retract((x(any) :- b(any)))` succeeds in one case and fails in the other. – false Feb 12 '18 at 20:10

0 Answers0