次の 2 つのファクトをプロローグ インタープリターにロードしました。
foo(U+V,1).
foo(U*V,2).
次に、その結果で次のクエリを試します。
foo(x*x+x,R). --> R = 1
foo(x+x*x,R). --> R = 1
foo(x*x*x,R). --> R = 2
次に、次のクエリを試します。
foo(x*x-x,R). --> no
私が理解しているように、これは演算子の優先順位がツリー式を構築する方法によって説明されます。
x+x*x --> + so it matches with --> +
/ \ / \
x * U V
/ \
x x
x-x*x --> - DOES NOT matches any fact.
/ \
x *
/ \
x x
この説明は正しいですか?