lambda calculus precedence of application and abstractionHow helpful is knowing lambda calculus?What are some resources for learning Lambda Calculus?Convert Python to Haskell / Lambda calculusWhat type of lambda calculus would Lisp loosely be an example of?Lambda Calculus operators precedenceCode exercising the unique possibilities of each edge of the lambda calculusWhich FP language follows lambda calculus the closest?“What part of Hindley-Milner do you not understand?”Quantifiers in lambda calculusEta abstraction in lambda calculus
Meta programming: Declare a new struct on the fly
I2C signal and power over long range (10meter cable)
How will losing mobility of one hand affect my career as a programmer?
The One-Electron Universe postulate is true - what simple change can I make to change the whole universe?
Female=gender counterpart?
The most efficient algorithm to find all possible integer pairs which sum to a given integer
What does the "3am" section means in manpages?
Is it okay / does it make sense for another player to join a running game of Munchkin?
Have I saved too much for retirement so far?
Identify a stage play about a VR experience in which participants are encouraged to simulate performing horrific activities
Invariance of results when scaling explanatory variables in logistic regression, is there a proof?
Can the electrostatic force be infinite in magnitude?
Can a Bard use an arcane focus?
Partial sums of primes
Freedom of speech and where it applies
Is it possible to build a CPA Secure encryption scheme which remains secure even when the encryption of secret key is given?
Perfect riffle shuffles
Can I rely on these GitHub repository files?
Adding empty element to declared container without declaring type of element
Visiting the UK as unmarried couple
For airliners, what prevents wing strikes on landing in bad weather?
Is there a good way to store credentials outside of a password manager?
Are Warlocks Arcane or Divine?
Is the next prime number always the next number divisible by the current prime number, except for any numbers previously divisible by primes?
lambda calculus precedence of application and abstraction
How helpful is knowing lambda calculus?What are some resources for learning Lambda Calculus?Convert Python to Haskell / Lambda calculusWhat type of lambda calculus would Lisp loosely be an example of?Lambda Calculus operators precedenceCode exercising the unique possibilities of each edge of the lambda calculusWhich FP language follows lambda calculus the closest?“What part of Hindley-Milner do you not understand?”Quantifiers in lambda calculusEta abstraction in lambda calculus
Application has higher precedence than abstraction.
In this sense, what is lambda calculus abstraction? I'm confused at what there is to have precedence over?
apply abstraction operator-precedence lambda-calculus
add a comment |
Application has higher precedence than abstraction.
In this sense, what is lambda calculus abstraction? I'm confused at what there is to have precedence over?
apply abstraction operator-precedence lambda-calculus
add a comment |
Application has higher precedence than abstraction.
In this sense, what is lambda calculus abstraction? I'm confused at what there is to have precedence over?
apply abstraction operator-precedence lambda-calculus
Application has higher precedence than abstraction.
In this sense, what is lambda calculus abstraction? I'm confused at what there is to have precedence over?
apply abstraction operator-precedence lambda-calculus
apply abstraction operator-precedence lambda-calculus
asked Mar 21 at 14:27
HdotHdot
43
43
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Lambda abstraction is λx.M
, for some variable x
and arbitrary term M
.
Application is (MN)
, for some arbitrary terms M
and N
.
Precdence is the question which of several operation is to be performed first if more than one reading is possible because the term is ambiguous due to ommission of brackets. For example in arithmetic, multiplication by convention has precedence over addition, which means that 5+2×3
is read as 5+(2×3)
and not as (5+2)×3
. The multiplication operator is evaluated first and binds the terms closest to it, and addition comes secondary, embedding the multiplication term.
W.r.t. to lambda calculus, the convention that application has higher precedence than abstraction means that in case of doubt because brackets have been ommitted, you will first try to form an application and only afterwards perform abstraction, so application "binds" stronger, and an abstraction term will be formed later and subsume the application term.
E.g., λx.M N
could in principle be read as either λx.(MN)
or (λx.M)M
, but since application has precedence over application, you first form the possible application (MN)
and then the abstraction λx.(MN)
. If it were the other way round, i.e. if abstraction had precedence over application, then you would first try to form an abstraction term (λx.M)
, then application with the term you already got ((λx.M)M)
.
So by defining that application has precedence over abstraction, λx.M N = λx.(MN)
, and not ((λx.M)M)
.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55282692%2flambda-calculus-precedence-of-application-and-abstraction%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Lambda abstraction is λx.M
, for some variable x
and arbitrary term M
.
Application is (MN)
, for some arbitrary terms M
and N
.
Precdence is the question which of several operation is to be performed first if more than one reading is possible because the term is ambiguous due to ommission of brackets. For example in arithmetic, multiplication by convention has precedence over addition, which means that 5+2×3
is read as 5+(2×3)
and not as (5+2)×3
. The multiplication operator is evaluated first and binds the terms closest to it, and addition comes secondary, embedding the multiplication term.
W.r.t. to lambda calculus, the convention that application has higher precedence than abstraction means that in case of doubt because brackets have been ommitted, you will first try to form an application and only afterwards perform abstraction, so application "binds" stronger, and an abstraction term will be formed later and subsume the application term.
E.g., λx.M N
could in principle be read as either λx.(MN)
or (λx.M)M
, but since application has precedence over application, you first form the possible application (MN)
and then the abstraction λx.(MN)
. If it were the other way round, i.e. if abstraction had precedence over application, then you would first try to form an abstraction term (λx.M)
, then application with the term you already got ((λx.M)M)
.
So by defining that application has precedence over abstraction, λx.M N = λx.(MN)
, and not ((λx.M)M)
.
add a comment |
Lambda abstraction is λx.M
, for some variable x
and arbitrary term M
.
Application is (MN)
, for some arbitrary terms M
and N
.
Precdence is the question which of several operation is to be performed first if more than one reading is possible because the term is ambiguous due to ommission of brackets. For example in arithmetic, multiplication by convention has precedence over addition, which means that 5+2×3
is read as 5+(2×3)
and not as (5+2)×3
. The multiplication operator is evaluated first and binds the terms closest to it, and addition comes secondary, embedding the multiplication term.
W.r.t. to lambda calculus, the convention that application has higher precedence than abstraction means that in case of doubt because brackets have been ommitted, you will first try to form an application and only afterwards perform abstraction, so application "binds" stronger, and an abstraction term will be formed later and subsume the application term.
E.g., λx.M N
could in principle be read as either λx.(MN)
or (λx.M)M
, but since application has precedence over application, you first form the possible application (MN)
and then the abstraction λx.(MN)
. If it were the other way round, i.e. if abstraction had precedence over application, then you would first try to form an abstraction term (λx.M)
, then application with the term you already got ((λx.M)M)
.
So by defining that application has precedence over abstraction, λx.M N = λx.(MN)
, and not ((λx.M)M)
.
add a comment |
Lambda abstraction is λx.M
, for some variable x
and arbitrary term M
.
Application is (MN)
, for some arbitrary terms M
and N
.
Precdence is the question which of several operation is to be performed first if more than one reading is possible because the term is ambiguous due to ommission of brackets. For example in arithmetic, multiplication by convention has precedence over addition, which means that 5+2×3
is read as 5+(2×3)
and not as (5+2)×3
. The multiplication operator is evaluated first and binds the terms closest to it, and addition comes secondary, embedding the multiplication term.
W.r.t. to lambda calculus, the convention that application has higher precedence than abstraction means that in case of doubt because brackets have been ommitted, you will first try to form an application and only afterwards perform abstraction, so application "binds" stronger, and an abstraction term will be formed later and subsume the application term.
E.g., λx.M N
could in principle be read as either λx.(MN)
or (λx.M)M
, but since application has precedence over application, you first form the possible application (MN)
and then the abstraction λx.(MN)
. If it were the other way round, i.e. if abstraction had precedence over application, then you would first try to form an abstraction term (λx.M)
, then application with the term you already got ((λx.M)M)
.
So by defining that application has precedence over abstraction, λx.M N = λx.(MN)
, and not ((λx.M)M)
.
Lambda abstraction is λx.M
, for some variable x
and arbitrary term M
.
Application is (MN)
, for some arbitrary terms M
and N
.
Precdence is the question which of several operation is to be performed first if more than one reading is possible because the term is ambiguous due to ommission of brackets. For example in arithmetic, multiplication by convention has precedence over addition, which means that 5+2×3
is read as 5+(2×3)
and not as (5+2)×3
. The multiplication operator is evaluated first and binds the terms closest to it, and addition comes secondary, embedding the multiplication term.
W.r.t. to lambda calculus, the convention that application has higher precedence than abstraction means that in case of doubt because brackets have been ommitted, you will first try to form an application and only afterwards perform abstraction, so application "binds" stronger, and an abstraction term will be formed later and subsume the application term.
E.g., λx.M N
could in principle be read as either λx.(MN)
or (λx.M)M
, but since application has precedence over application, you first form the possible application (MN)
and then the abstraction λx.(MN)
. If it were the other way round, i.e. if abstraction had precedence over application, then you would first try to form an abstraction term (λx.M)
, then application with the term you already got ((λx.M)M)
.
So by defining that application has precedence over abstraction, λx.M N = λx.(MN)
, and not ((λx.M)M)
.
answered Mar 21 at 19:51
lemontreelemontree
1177
1177
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55282692%2flambda-calculus-precedence-of-application-and-abstraction%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown