лямбда-исчисление приоритет применения и абстракции - PullRequest
0 голосов
/ 21 марта 2019
Application has higher precedence than abstraction.

В этом смысле, что такое абстракция лямбда-исчисления?Я запутался в том, что есть иметь приоритет над?

1 Ответ

1 голос
/ 21 марта 2019

Лямбда-абстракция равна λ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).

...