Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Lambda calculus
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Abstraction elimination === {{Further|Combinatory logic#Completeness of the S-K basis}} If ''N'' is a lambda-term without abstraction, but possibly containing named constants ([[combinatory logic|combinators]]), then there exists a lambda-term ''T''({{Mono|''x''}},''N'') which is equivalent to {{Mono|Ξ»''x''.}}''N'' but lacks abstraction (except as part of the named constants, if these are considered non-atomic). This can also be viewed as anonymising variables, as ''T''({{Mono|''x''}},''N'') removes all occurrences of {{Mono|''x''}} from ''N'', while still allowing argument values to be substituted into the positions where ''N'' contains an {{Mono|''x''}}. The conversion function ''T'' can be defined by: : ''T''({{Mono|''x''}}, {{Mono|''x''}}) := '''I''' : ''T''({{Mono|''x''}}, ''N'') := '''K''' ''N'' if {{Mono|''x''}} is not free in ''N''. : ''T''({{Mono|''x''}}, ''M'' ''N'') := '''S''' ''T''({{Mono|''x''}}, ''M'') ''T''({{Mono|''x''}}, ''N'') In either case, a term of the form ''T''({{Mono|''x''}},''N'') ''P'' can reduce by having the initial combinator '''I''', '''K''', or '''S''' grab the argument ''P'', just like Ξ²-reduction of {{Mono|(Ξ»''x''.}}''N''{{Mono|)}} ''P'' would do. '''I''' returns that argument. '''K''' throws the argument away, just like {{Mono|(Ξ»''x''.}}''N''{{Mono|)}} would do if {{Mono|''x''}} has no free occurrence in ''N''. '''S''' passes the argument on to both subterms of the application, and then applies the result of the first to the result of the second. The combinators '''B''' and '''C''' are similar to '''S''', but pass the argument on to only one subterm of an application ('''B''' to the "argument" subterm and '''C''' to the "function" subterm), thus saving a subsequent '''K''' if there is no occurrence of {{Mono|''x''}} in one subterm. In comparison to '''B''' and '''C''', the '''S''' combinator actually conflates two functionalities: rearranging arguments, and duplicating an argument so that it may be used in two places. The '''W''' combinator does only the latter, yielding the [[B, C, K, W system]] as an alternative to [[SKI combinator calculus]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)