Лямбда-абстракция равна λx.M
, для некоторой переменной x
и произвольному члену M
.
Заявка (MN)
, для некоторых произвольных терминов M
и N
.
Точность - это вопрос о том, какая из нескольких операций должна выполняться в первую очередь, если возможно более одного чтения, потому что термин неоднозначен из-за пропуска скобок. Например, в арифметике умножение по соглашению имеет приоритет перед сложением, что означает, что 5+2×3
читается как 5+(2×3)
, а не как (5+2)×3
. Оператор умножения вычисляется первым и связывает наиболее близкие к нему термины, а сложение - вторичное, встраивая термин умножения.
W.r.t. Для лямбда-исчисления, соглашение о том, что приложение имеет более высокий приоритет, чем абстракция, означает, что в случае сомнений, потому что скобки были опущены, вы сначала попытаетесь сформировать приложение, а только потом выполнить абстракцию, так что приложение «связывает» сильнее, и термин абстракции будет сформирована позже и будет указана в заявке
Например, λx.M N
в принципе можно читать как λx.(MN)
или (λx.M)M
, но, поскольку приложение имеет приоритет над приложением, вы сначала формируете возможное приложение (MN)
, а затем абстракцию λx.(MN)
. Если бы все было наоборот, т. Е. Если бы абстракция имела приоритет над приложением, то сначала вы попытались бы сформировать абстрагируемый термин (λx.M)
, а затем приложение с уже полученным термином ((λx.M)M)
.
Таким образом, определяя, что приложение имеет приоритет над абстракцией, λx.M N = λx.(MN)
, а не ((λx.M)M)
.