6
我在序言中解釋裝下兩個事實規則:Prolog的運算符優先級和匹配
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
這個解釋是否正確?