я следующие два факта загружены в мой пролог переводчика:Пролог оператор старшинства и правила, соответствующие
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
Это объяснение правильно?