Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Лямбда-исчислСниС: описаниС Ρ‚Π΅ΠΎΡ€Π΅ΠΌΡ‹, особСнности, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Лямбда-исчислСниС β€” это Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ систСма Π² матСматичСской Π»ΠΎΠ³ΠΈΠΊΠ΅ для выраТСния подсчСтов Π½Π° основС абстракции ΠΈ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с использованиСм привязки ΠΈ подстановки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ модСль, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для проСктирования любой ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°. Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π²Π²Π΅Π΄Π΅Π½Π° лямбда-исчислСния Π§Π΅Ρ€Ρ‡Π΅ΠΌ, извСстным ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΌ, Π² 1930-Ρ… Π³ΠΎΠ΄Π°Ρ….

БистСма состоит ΠΈΠ· построСния лямбда-Ρ‡Π»Π΅Π½ΠΎΠ² ΠΈ выполнСния Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сокращСния.

ПояснСния ΠΈ прилоТСния

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно: КакиС элСмСнты входят Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ структуру общСства, Π²ΠΈΠ΄Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ

ГрСчСская Π±ΡƒΠΊΠ²Π° lambda (Ξ») ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² лямбда-выраТСниях ΠΈ лямбда-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… для обозначСния связывания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Лямбда-исчислСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΈΠ»ΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠ½ΠΈ способны ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ этого Ρ‚ΠΈΠΏΠ°. Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ лямбда-исчислСния слабСС, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ мСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Но, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ большС Π²Π΅Ρ‰Π΅ΠΉ.

Одной ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² β€” это ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡƒΡ‡Π΅Π½Ρ‹Ρ… ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ большС, Π½Π΅ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡΡΡŒ ΠΎΡ‚ возмоТности Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅ΠΎΡ€Π΅ΠΌΡ‹ лямбда-исчислСний.

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно: Π‘Π΅ΠΌΠ΅ΠΉΠ½Ρ‹ΠΉ этикСт: основы ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, особСнности ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ с Π±Π»ΠΈΠ·ΠΊΠΈΠΌΠΈ родствСнниками

БистСма Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… областях ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, философии, лингвистики, ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, лямбда-исчислСния β€” это расчСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сыграл Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ языков программирования. ИмСнно стили Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ создания Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ систСмы. Они Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ исслСдований Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ этих ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ.

Для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

Лямбда-исчислСниС Π±Ρ‹Π»Π° Π²Π²Π΅Π΄Π΅Π½Π° ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΌ Алонзо Π§Π΅Ρ€Ρ‡Π΅ΠΌ Π² 1930-Ρ… Π³ΠΎΠ΄Π°Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… исслСдования основ Π½Π°ΡƒΠΊΠΈ. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ систСма Π±Ρ‹Π»Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΊΠ°ΠΊ логичСски нСсовмСстимая Π² 1935 Π³ΠΎΠ΄Ρƒ, ΠΊΠΎΠ³Π΄Π° Π‘Ρ‚ΠΈΠ²Π΅Π½ Клин ΠΈ Π”ΠΆ. Π‘. РоссСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ парадокс Клини-РоссСра.

Π’ послСдствии, Π² 1936 Π³ΠΎΠ΄Ρƒ Π§Π΅Ρ€Ρ‡ Π²Ρ‹Π΄Π΅Π»ΠΈΠ» ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρƒ Ρ‡Π°ΡΡ‚ΡŒ, которая ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ расчСтам, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСйчас называСтся Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ лямбда-исчислСниСм. Π’ 1940 ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ прСдставил Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±ΡƒΡŽ, Π½ΠΎ логичСски Π½Π΅ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²ΡƒΡŽ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ, ΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ ΠΊΠ°ΠΊ систСма простого Ρ‚ΠΈΠΏΠ°. Π’ своС Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΎΠ½ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ всю Ρ‚Π΅ΠΎΡ€ΠΈΡŽ простым языком, поэтому, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π§Π΅Ρ€Ρ‡ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» лямбду исчислСния для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ².

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно: ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΈ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ΄ΠΎΡ€ΠΎΠΆΠ½ΠΈΠΊΠΎΠ²: ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ, описаниС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

Π”ΠΎ 1960-Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ языкам программирования, Ξ» стала лишь Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΌΠΎΠΌ. Благодаря примСнСниям Π ΠΈΡ‡Π°Ρ€Π΄Π° ΠœΠΎΠ½Ρ‚Π΅Π³ΡŽ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… лингвистов Π² сСмантикС СстСствСнного языка, исчислСниС стало Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΎΠ΅ мСсто ΠΊΠ°ΠΊ Π² лингвистикС, Ρ‚Π°ΠΊ ΠΈ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ символа

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Лямбда Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ слово ΠΈΠ»ΠΈ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ, ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°, благодаря ссылки Π² Β«ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅Β» РассСла, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π΄Π²Π° типографских измСнСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ обозначСния: для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f с f (y) = 2y + 1 Ρ€Π°Π²Π½ΠΎ 2Ε· + 1. И здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ («шляпа») Π½Π°Π΄ y для ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π¦Π΅Ρ€ΠΊΠΎΠ²ΡŒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π²Π°Π»Π°ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ символы, Π½ΠΎ Π½Π°Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΈ Π½Π΅ смогли Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ символ «шляпа» Π½Π°Π΄ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ вмСсто этого ΠΎΠ½ΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»ΠΈ Π΅Π³ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΊ Β«/y.2y+1Β». Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ эпизодС рСдактирования Π½Π°Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Β«/ Β» Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ символ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² лямбда исчислСниС

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

БистСма состоит ΠΈΠ· языка Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ синтаксисом, ΠΈ Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ» прСобразования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΈ. ПослСдний ΠΏΡƒΠ½ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΠΊΠ²Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² лямбда-исчислСнии ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½. Они ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΏΡ€ΠΈ этом ΠΊΠ°Ρ€Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² с нСсколькими нСпостоянными.

Лямбда-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹

Бинтаксис исчислСния опрСдСляСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выраТСния ΠΊΠ°ΠΊ допустимыС, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” ΠΊΠ°ΠΊ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ строки символов ΡΠ²Π»ΡΡŽΡ‚ΡΡ допустимыми ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° Π‘ΠΈ, Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ β€” Π½Π΅Ρ‚. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ лямбда-исчислСния называСтся «лямбда-Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌΒ».

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΄Π°ΡŽΡ‚ ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для построСния всСх синтаксичСски допустимых понятий:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ x сама ΠΏΠΎ сСбС являСтся Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ лямбда-Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ:

Ничто Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π΅ являСтся лямбда-Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, понятиС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ этих Ρ‚Ρ€Π΅Ρ… ΠΏΡ€Π°Π²ΠΈΠ». Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скобки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ Π² соотвСтствии с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ критСриями.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно: Π’ΠΈΠ΄Ρ‹ контроля качСства ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ производствС

Лямбда-выраТСния состоят ΠΈΠ·:

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ξ›, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ:

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Π½Π΅Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ соглашСния:

Π‘Π²ΠΎΠ±ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ связанныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ξ» соСдиняСт свою Π½Π΅ΠΏΠΎΡΡ‚ΠΎΡΠ½Π½ΡƒΡŽ, Π³Π΄Π΅ Π±Ρ‹ ΠΎΠ½ Π½ΠΈ находился Π² Ρ‚Π΅Π»Π΅ абстракции. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ связанными. Π’ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ξ» x. М, Ρ‡Π°ΡΡ‚ΡŒ Ξ» Ρ… часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠ²ΡΠ·ΡƒΡŽΡ‰ΠΈΠΌ. Как Π±Ρ‹ намСкая, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ становятся Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π₯ Ρ… ΠΊ М. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ нСустойчивыС Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ свободными.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ свободных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… M обозначаСтся ΠΊΠ°ΠΊ FV (M) ΠΈ опрСдСляСтся рСкурсиСй ΠΏΠΎ структурС Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π€ΠΎΡ€ΠΌΡƒΠ»Π°, которая Π½Π΅ содСрТит свободных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, называСтся Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ. Π—Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Π΅ лямбда-выраТСния Ρ‚Π°ΠΊΠΆΠ΅ извСстны ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ эквивалСнтны Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅.

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ опрСдСляСтся Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сокращСны.

БущСствуСт Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° урСзания:

Π—Π΄Π΅ΡΡŒ Ρ€Π΅Ρ‡ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… эквивалСнтностях: Π΄Π²Π° выраТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ξ²-эквивалСнтными, Ссли ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ξ²-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅, Π° Ξ± / Ξ·-ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ опрСдСляСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ.

Π’Π΅Ρ€ΠΌΠΈΠ½ redex, сокращСниС ΠΎΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π°, относится ΠΊ ΠΏΠΎΠ΄Ρ‚Π΅ΠΌΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сокращСны ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ». Лямбда исчислСниС для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

(Ξ» x.M) N являСтся Π±Π΅Ρ‚Π°-рСдСксом Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ N Π½Π° x Π² M. Π‘ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ сводится рСдСкс, называСтся Π΅Π³ΠΎ Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΠΌ. РСдукция (Ξ» x.M) N Π΅ΡΡ‚ΡŒ M [x: = N].

Если x Π½Π΅ являСтся свободной Π² M, Ξ» Ρ…. М Ρ… Ρ‚Π°ΠΊΠΆΠ΅ Π΅Ρ‚-REDEX с рСгулятором М.

Ξ±-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

ΠΠ»ΡŒΡ„Π°-пСрСимСнования ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° связанных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, Ξ» x. Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ Ξ» Ρƒ. Ρƒ. Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π»ΡŒΡ„Π°-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ξ±-эквивалСнтными. Часто ΠΏΡ€ΠΈ использовании лямбда-исчислСния Ξ±-эквивалСнтныС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π²Π·Π°ΠΈΠΌΠ½Ρ‹ΠΌΠΈ.

Π’ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для Π°Π»ΡŒΡ„Π°-прСобразования Π½Π΅ совсСм Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΡ€ΠΈ Π΄Π°Π½Π½ΠΎΠΉ абстракции ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ систСмой. НапримСр, Π°Π»ΡŒΡ„Π°-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ξ» x.Ξ» x. x ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ξ» y.Ξ» x. Ρ…, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π²Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΡŒ ΠΊ Ξ»y.Ξ»x.y ПослСдний ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ½ΠΎΠΉ смысл, Ρ‡Π΅ΠΌ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π». Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ программирования затСнСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π°Π»ΡŒΡ„Π°-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ссли ΠΎΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π·Π°Ρ…Π²Π°Ρ‚Ρƒ нСпостоянной Π΄Ρ€ΡƒΠ³ΠΎΠΉ абстракциСй. НапримСр, Ссли Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ x Π½Π° y Π² Ξ» x.Ξ» y. x, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ξ» y.Ξ» y. Ρƒ, Ρ‡Ρ‚ΠΎ совсСм Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС.

Π’ языках программирования со статичСской ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости Π°Π»ΡŒΡ„Π°-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для упрощСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½. ΠŸΡ€ΠΈ этом слСдя Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ понятиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ маскировало ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² содСрТащСй области.

Π’ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ индСкса Π”Π΅ Π‘Ρ€ΡŽΠΉΠ½Π° Π»ΡŽΠ±Ρ‹Π΅ Π΄Π²Π° Π°Π»ΡŒΡ„Π°-эквивалСнтных Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° синтаксичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹.

Π—Π°ΠΌΠ΅Π½Π°

y [x: = N] ≑ y, Ссли x β‰  y

(M 1 M 2) [x: = N] ≑ (M 1 [x: = N]) (M 2 [x: = N])

(Ξ» y.M) [x: = N] y Ξ» y. (M [x: = N]), Ссли x β‰  y, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ y βˆ‰ FV (N).

Для подстановки Π² лямбда-Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ξ±-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. НапримСр, Π½Π΅Π²Π΅Ρ€Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ (Ξ» x. Y) [y: = x] ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ (Ξ» x. X), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ x Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π±Ρ‹Ρ‚ΡŒ свободным, Π½ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π±Ρ‹Π» связанным. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Π·Π°ΠΌΠ΅Π½Π° Π² этом случаС (Ξ» z. X) с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ Ξ±-эквивалСнтности. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ опрСдСляСтся ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ с Π²Π΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ лямбды.

Ξ²-рСдукция

Π‘Π΅Ρ‚Π°-рСдукция ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ идСю примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π΅Ρ‚Π°-Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ опрСдСляСтся Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… замСщСния: ((X V. E) Π• ‘) являСтся Π• [V: = Π•’].

НапримСр, прСдполагая Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 2, 7, Γ—, имССтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ξ²-ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅: ((Ξ» n. N Γ— 2) 7) β†’ 7 Γ— 2.

Π‘Π΅Ρ‚Π°-рСдукция ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ концСпция локальной сводимости ΠΏΡ€ΠΈ СстСствСнной Π΄Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠšΠ°Ρ€Ρ€ΠΈ – Π₯ΠΎΠ²Π°Ρ€Π΄Π°.

Ξ·-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π­Ρ‚Π°-конвСрсия Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ идСю ΡΠΊΡΡ‚Π΅Π½ΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, которая Π² этом контСкстС Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π²Π½Ρ‹ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ для всСх Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π­Ρ‚Π° конвСртация ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Ξ» x. (F x) ΠΈ f всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° x Π½Π΅ каТСтся свободным Π² f.

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно: ΠžΡ‚ΠΊΡƒΠ΄Π° появились славянС: ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, описаниС ΠΈ история

Π”Π°Π½Π½ΠΎΠ΅ дСйствиС ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ концСпция локальной ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ Π² СстСствСнной Π΄Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠšΠ°Ρ€Ρ€ΠΈ – Π₯ΠΎΠ²Π°Ρ€Π΄Π°.

ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ слияниС

Для Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ лямбда-исчислСния Ξ²-рСдукция ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ пСрСписывания Π½Π΅ являСтся Π½ΠΈ сильно Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ, Π½ΠΈ слабо.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ξ²-рСдукция сливаСтся ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄ΠΎ Ξ±-прСобразования (Ρ‚. Π΅. ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π²Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ, Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ξ±-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ).

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈ сильно Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹, ΠΈ слабо Π½Π°Π»Π°ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ понятия ΠΈΠΌΠ΅ΡŽΡ‚ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. Для ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² любая стратСгия сокращСния Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ для слабо Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… условий Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стратСгии сокращСния ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΅Π΅.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ программирования

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

БущСствуСт большоС количСство ΠΈΠ΄ΠΈΠΎΠΌ создания для лямбда-исчислСния. МногиС ΠΈΠ· Π½ΠΈΡ… Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π² контСкстС использования систСм Π² качСствС основы для сСмантики языка программирования, эффСктивно примСняя ΠΈΡ… Π² качСствС создания Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стили Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ лямбда-исчислСниС (ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅) Π² качСствС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ находят ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² практичСском создании, Π½ΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ нСясныС ΠΈΠ»ΠΈ Ρ‡ΡƒΠΆΠΈΠ΅.

Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы

Π’ лямбда-исчислСнии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ Π½Π°Π±ΠΎΡ€Π° Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ просто ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ константами. ЧистоС исчислСниС Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ понятия ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС Π°Ρ‚ΠΎΠΌΠ½Ρ‹Π΅ лямбда-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Но ΠΈΡ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²Ρ‹Π΄Π΅Π»ΠΈΠ² Π½Π΅ΠΏΠΎΡΡ‚ΠΎΡΠ½Π½ΡƒΡŽ Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ константы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ лямбда-Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ для связывания этой ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²ΠΎΠΉ Π² основной части, ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ эту Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ ΠΊ Π½Π°ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ f для обозначСния M Π² N, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ,

Авторы часто вводят синтаксичСскоС понятиС, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ let, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π² Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎΠΌ порядкС.

ОбъСдиняя Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Ρ‚Π°ΠΊΠΈΠ΅ опрСдСлСния, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Β«ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒΒ» лямбда-исчислСния ΠΊΠ°ΠΊ ноль ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слСдуСт ΠΎΠ΄ΠΈΠ½ лямбда-Ρ‡Π»Π΅Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅ опрСдСлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π—Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ этого let являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ имя f Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² M, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ M находится Π²Π½Π΅ области привязки лямбда-абстракции f. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ рСкурсивной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ M с let. Π‘ΠΎΠ»Π΅Π΅ продвинутая синтаксичСская конструкция letrec, которая позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ рСкурсивныС опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² этом стилС, вмСсто этого Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρ‹ с фиксированной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

ΠŸΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ

Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ являСтся Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΌΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ символ для обозначСния Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ абстракция. Π’ этом контСкстС Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ синтаксичСской ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ лямбда-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌ. Вочная Π½Π°Ρ‚ΡƒΡ€Π° зависит ΠΎΡ‚ рассматриваСмого исчислСния. Π‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π›Π˜ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ уточнСния Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π›Π˜. Но с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΈΡ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ, Π° Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ лямбда-исчислСниС β€” особым случаСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ.

Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π›Π˜ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΌΠΈ языками программирования ΠΈ основой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ML ΠΈ Haskell. И, Π±ΠΎΠ»Π΅Π΅ косвСнно, ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… стилСй создания. Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ лямбда-исчислСния ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ систСм Ρ‚ΠΈΠΏΠΎΠ² для языков программирования. Π—Π΄Π΅ΡΡŒ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свойства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½Π° Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ доступа ΠΊ памяти.

Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ лямбда-исчислСния тСсно связаны с матСматичСской Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠšΠ°Ρ€Ρ€ΠΈ – Π“ΠΎΠ²Π°Ρ€Π΄Π°, ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ язык классов ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто являСтся стилСм Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹Ρ… Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ….

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Ξ»-исчислСниС. Π§Π°ΡΡ‚ΡŒ вторая: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

ИдСю, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΠ»Π°Π½ ΠΈ ссылки Π½Π° основныС источники для этой ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΠ½Π΅ ΠΏΠΎΠ΄Π°Π» Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€ z6Dabrata, Π·Π° Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Π΅ΠΉΡˆΠ΅Π΅ спасибо.

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π»Π° Π½Π°ΠΌ тСорСтичСскоС прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ лямбда-исчислСниС. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ послСдуСм Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΉΠΎΠ³ΠΎ-Π·Π°ΠΏΠΎΠ²Π΅Π΄ΠΈ Β«Practice-practice-practiceΒ» ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π² дСйствии.

Π‘ΡƒΠ»Π΅Π²Ρ‹ константы Π§Ρ‘Ρ€Ρ‡Π°

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Π² чистом бСстиповом лямбда-исчислСнии отсутствуСт всё, ΠΊΡ€ΠΎΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнтарныС Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ числа ΠΈΠ»ΠΈ Π±ΡƒΠ»Π΅Π²Ρ‹ значСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ самим. Π’ΠΎΡ‡Π½Π΅Π΅, Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ сущности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ вСсти сСбя ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ Π½Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. И, СстСствСнно, процСсс кодирования Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² написании ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ:
if fls t e

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ условиС if Π»ΠΎΠΆΠ½ΠΎ ( fls ), Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ else ( e Π² нашСм случаС).

(Ξ»b. Ξ»x. Ξ»y. b x y) fls t eΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ if
(Ξ»x. Ξ»y. fls x y) t eрСдукция ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠ½ΡƒΡ‚ΠΎΠ³ΠΎ выраТСния ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строки
(Ξ»y. fls t y) eрСдукция ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠ½ΡƒΡ‚ΠΎΠ³ΠΎ выраТСния ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строки
fls t eрСдукция ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠ½ΡƒΡ‚ΠΎΠ³ΠΎ выраТСния ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строки
(Ξ»t.Ξ»f. f) t eΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ fls
(Ξ»f. f) eрСдукция ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠ½ΡƒΡ‚ΠΎΠ³ΠΎ выраТСния ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строки
eрСдукция ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠ½ΡƒΡ‚ΠΎΠ³ΠΎ выраТСния ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строки

Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ основных Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ‚ΠΎΠΆΠ΅ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного. НапримСр, ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ (логичСскоС Β«ΠΈΒ») Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
and = Ξ»x. Ξ»y. x y fls

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ логичСскиС Β«ΠΈΠ»ΠΈΒ» ΠΈ Β«Π½Π΅Β».

Числа Π§Ρ‘Ρ€Ρ‡Π°

ΠœΡ‹ с Π²Π°ΠΌΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Π΅ числа, для Ρ‡Π΅Π³ΠΎ вспомним аксиомы ПСано, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡ… мноТСство. Π’ основС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ сСбя Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ контСкстС ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅, Π΄Π²ΠΎΠΉΠΊΠ΅ ΠΈ Ρ‚.Π΄. БобствСнно, это ΠΎΠ΄Π½Π° ΠΈΠ· особСнностСй лямбда-исчислСния: сущности, записанныС Π² Π΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ…, Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΎΠΏΠ»ΠΎΡ‰Π°ΡŽΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π˜Ρ‚Π°ΠΊ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° функция, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°: фиксированноС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для опрСдСлСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ слСдования). Число Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π² количСствС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ слСдования ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ:

0 ≑ Ξ»s.Ξ»z. zфункция s примСняСтся ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ z Π½ΡƒΠ»ΡŒ Ρ€Π°Π·
1 ≑ Ξ»s.Ξ»z. s zфункция s примСняСтся ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ z ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·
2 ≑ Ξ»s.Ξ»z. s (s z)функция s примСняСтся ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ z Π΄Π²Π° Ρ€Π°Π·Π°
.ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅

Π›Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠ»ΡŒ кодируСтся Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ логичСскоС False. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ стоит Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· этого ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹: это всСго лишь совпадСниС.

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

plus = Ξ»x. Ξ»y. Ξ»s. Ξ»z. x s (y s z)

plus one two s’ z’s’ ΠΈ z’ β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ подставляСмыС значСния с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
(Ξ»x. Ξ»y. Ξ»s. Ξ»z. x s (y s z)) one two s’ z’ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ plus
one s’ (two s’ z’)послС провСдСния Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ
(Ξ»s.Ξ»z. s z) s’ (two s’ z’)ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ one
s’ (two s’ z’)послС провСдСния Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ
s’ (( Ξ»s.Ξ»z. s (s z) s’ z’)ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ two
s’ (s’ (s’ z’))послС провСдСния Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ
three s’ z’ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ three
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅

times = Ξ»x. Ξ»y. x (plus y) z

times’ = Ξ»x.Ξ»y.Ξ»s.Ξ»z. x (y s) z

times’ two three s’ z’s’ ΠΈ z’ β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ подставляСмыС значСния с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
(Ξ»x.Ξ»y.Ξ»s.Ξ»z. x (y s) z) two three s’ z’ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ times’
two (three s’) z’послС провСдСния Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ
(Ξ»s.Ξ»z. s (s z)) (three s’) z’ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ two
three s’ ((three s’) z’)послС провСдСния Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ
(Ξ»s.Ξ»z. s (s (s z))) s’ ((three s’) z’)ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ three
s’ (s’ (s’ ((three s’) z’)))послС провСдСния Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ
s’ (s’ (s’ (((Ξ»s.Ξ»z. s (s (s z))) s’) z’)))ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ three
s’ (s’ (s’ (( (Ξ»z. s’ (s’ (s’ z))) z’ )))послС провСдСния Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΈ
s’ (s’ (s’ (s’ (s’ (s’ z’)))))рСдукция ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠ½ΡƒΡ‚ΠΎΠ³ΠΎ выраТСния
six s’ z’ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ six

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌ для возвСдСния числа Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ

ПослСднСй нСрассмотрСнной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ являСтся Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ β€” Π½Π΅ самая Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‰ΡŒ Π½Π° числах Π§Ρ‘Ρ€Ρ‡Π°. Π–Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ ΠΊΠ½ΠΈΠ³Π΅ Π‘Π΅Π½ΠΆΠ°ΠΌΠΈΠ½Π° ΠŸΠΈΡ€ΡΠ° Β«Types and Programming LanguagesΒ».
Π¦ΠΈΡ‚Π°Ρ‚Π° для привлСчСния внимания ΠΈΠ· Π²ΠΈΠΊΠΈ-конспСкта ΠΏΠΎ лямбда-ΠΈΡΡ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ: «Если Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ поняли, Π½Π΅ ΠΎΠ³ΠΎΡ€Ρ‡Π°ΠΉΡ‚Π΅ΡΡŒ. Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» Клини, ΠΊΠΎΠ³Π΄Π° Π΅ΠΌΡƒ Π²Ρ‹Ρ€Ρ‹Π²Π°Π»ΠΈ Π·ΡƒΠ± мудрости. А сСйчас Π½Π°Ρ€ΠΊΠΎΠ· ΡƒΠΆΠ΅ Π½Π΅ Ρ‚ΠΎΡ‚Β».

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Как Π²ΠΈΠ΄ΠΈΠΌ, тСхничСски Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного Π² лямбда-исчислСнии Π½Π΅Ρ‚: всё сводится ΠΊ элСмСнтарным подстановкам ΠΈ рСдукциям. Но ΡΡ‚ΠΎΠ»ΡŒ ΠΌΠ°Π»ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° инструмСнтов Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ сущности, Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ сСбя ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ°Ρ€Π°ΠΌ, спискам, рСкурсивным функциям ΠΈ Ρ‚.ΠΏ. Они Π±ΡƒΠ΄ΡƒΡ‚ достаточно Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ, Π½ΠΎ, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, Ξ»-исчислСниС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ Π½Π΅ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° для исслСдования ΠΈ спСцификации языков программирования ΠΈ систСм Ρ‚ΠΈΠΏΠΎΠ². Π‘ Ρ‡Π΅ΠΌ, собствСнно, ΠΈ прСкрасно справляСтся.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Ξ»-исчислСниС. Π§Π°ΡΡ‚ΡŒ пСрвая: история ΠΈ тСория

ИдСю, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΠ»Π°Π½ ΠΈ ссылки Π½Π° основныС источники для этой ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΠ½Π΅ ΠΏΠΎΠ΄Π°Π» Ρ…Π°Π±Ρ€Π°ΡŽΠ·Π΅Ρ€ z6Dabrata, Π·Π° Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Π΅ΠΉΡˆΠ΅Π΅ спасибо.

UPD: Π² тСкст внСсСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния с Ρ†Π΅Π»ΡŒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ понятным. Бмысловая ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ.

ВступлСниС

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρƒ этой систСмы найдутся прилоТСния Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ
Π² Ρ€ΠΎΠ»ΠΈ логичСского исчислСния. (Алонзо Π§Ρ‘Ρ€Ρ‡, 1932)

Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, лямбда-исчислСниС Π½Π΅ относится ΠΊ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ сСбя программист». Π­Ρ‚ΠΎ такая тСорСтичСская ΡˆΡ‚ΡƒΠΊΠ°, ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Π½ΡΡ‚ΡŒΡΡ исслСдованиСм систСм Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ язык программирования. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»Π΅ΠΆΠΈΡ‚ Π² основС Haskell, ML ΠΈ ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ…, Β«ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ сборки» Π½Π° написаниС ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ просто Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ свой ΠΊΡ€ΡƒΠ³ΠΎΠ·ΠΎΡ€, Ρ‚ΠΎ ΠΏΡ€ΠΎΡˆΡƒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

Начнём ΠΌΡ‹ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ (Π½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ) экскурса Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ. Π’ 30-Ρ… Π³ΠΎΠ΄Π°Ρ… ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ встала Ρ‚Π°ΠΊ называСмая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (Entscheidungsproblem), сформулированная Π”Π°Π²ΠΈΠ΄ΠΎΠΌ Π“ΠΈΠ»ΡŒΠ±Π΅Ρ€Ρ‚ΠΎΠΌ. Π‘ΡƒΡ‚ΡŒ Π΅Ρ‘ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎΡ‚ Π΅ΡΡ‚ΡŒ Ρƒ нас Π½Π΅ΠΊΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅. БущСствуСт Π»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ число шагов ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ? ΠžΡ‚Π²Π΅Ρ‚ Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½ двумя Π²Π΅Π»ΠΈΠΊΠΈΠΌΠΈ ΡƒΡ‡Ρ‘Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Алонзо Π§Ρ‘Ρ€Ρ‡Π΅ΠΌ ΠΈ Аланом Π’ΡŒΡŽΡ€ΠΈΠ½Π³ΠΎΠΌ. Они ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌ Ξ»-исчислСния, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°), Ρ‡Ρ‚ΠΎ для Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅ сущСствуСт Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Ρ‚.Π΅. Entscheidungsproblem Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΠ°.

Π’Π°ΠΊ лямбда-исчислСниС Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π³Ρ€ΠΎΠΌΠΊΠΎ заявило ΠΎ сСбС, Π½ΠΎ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€Ρƒ дСсятков Π»Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ достояниСм матСматичСской Π»ΠΎΠ³ΠΈΠΊΠΈ. Пока Π² сСрСдинС 60-Ρ… ΠŸΠΈΡ‚Π΅Ρ€ Π›Π°Π½Π΄ΠΈΠ½ Π½Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ слоТный язык программирования ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ, сформулировав Π΅Π³ΠΎ ядро Π² Π²ΠΈΠ΄Π΅ нСбольшого Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ исчислСния, Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ самыС сущСствСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ языка ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π° язык Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ исчислСния. Π’ качСствС Ρ‚Π°ΠΊΠΎΠΉ основы Π›Π°Π½Π΄ΠΈΠ½ использовал лямбда-исчислСниС Π§Ρ‘Ρ€Ρ‡Π°. И всё завСртС…

Ξ»-исчислСниС: основныС понятия

Бинтаксис

Π’ основС лямбда-исчислСния Π»Π΅ΠΆΠΈΡ‚ понятиС, извСстноС Π½Ρ‹Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ программисту, β€” анонимная функция. Π’ Π½Ρ‘ΠΌ Π½Π΅Ρ‚ встроСнных констант, элСмСнтарных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², чисСл, арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, условных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ Ρ‚. ΠΏ. β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…Π°Ρ€Π΄ΠΊΠΎΡ€. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ лямбда-исчислСниС β€” это Π½Π΅ язык программирования, Π° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚, способный ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² своих Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π»ΡŽΠ±ΡƒΡŽ ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Π’ этом смыслС ΠΎΠ½ΠΎ созвучно машинС Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ соотвСтствуСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅, Π° Π½Π΅ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ.

ΠœΡ‹ с Π²Π°ΠΌΠΈ рассмотрим Π΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ: чистоС Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ лямбда-исчислСниС, ΠΈ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π² нашСм распоряТСнии.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ вычислСния

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌ-ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅:

БущСствуСт нСсколько стратСгий Π²Ρ‹Π±ΠΎΡ€Π° рСдСкса для ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ шага вычислСния. Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠ°:

ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ для простоты ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ

(Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ id β€” это функция тоТдСства Π²ΠΈΠ΄Π° Ξ»x.x )

Π’ этом Ρ‚Π΅Ρ€ΠΌΠ΅ содСрТится Ρ‚Ρ€ΠΈ рСдСкса:
Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Лямбда Ρ‡Ρ‚ΠΎ это Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

НСдостатком стратСгии Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΡ‚ΡŒΡΡ ΠΈ Π½Π΅ Π½Π°ΠΉΡ‚ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠ°. Рассмотрим для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

(Ξ»x.Ξ»y. x) z ((Ξ»x.x x)(Ξ»x.x x))

Π­Ρ‚ΠΎΡ‚ Ρ‚Π΅Ρ€ΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ z нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚. На Π΅Ρ‘-Ρ‚ΠΎ вычислСнии ΠΈ зависнСт стратСгия Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ стратСгия Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π½Π°Ρ‡Π½Ρ‘Ρ‚ с самого внСшнСго Ρ‚Π΅Ρ€ΠΌΠ° ΠΈ Ρ‚Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅. Π’Ρ‹Π²ΠΎΠ΄: Ссли Ρƒ рСдСкса Π΅ΡΡ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°, Ρ‚ΠΎ «лСнивая» стратСгия Π΅Ρ‘ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΉΠ΄Ρ‘Ρ‚.

На этом Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ Π²Π²ΠΎΠ΄Π½ΡƒΡŽ Π² лямбда-исчислСниС. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ займёмся Ρ‚Π΅ΠΌ, Ρ€Π°Π΄ΠΈ Ρ‡Π΅Π³ΠΎ всё ΠΈ Π·Π°Ρ‚Π΅Π²Π°Π»ΠΎΡΡŒ: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° Ξ»-исчислСнии.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Лямбда-исчислСниС

Лямбда-исчислСниС (Π°Π½Π³Π». lambda calculus) β€” Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ систСма, придуманная Π² 1930-Ρ… Π³ΠΎΠ΄Π°Ρ… Алонзо Π§Ρ‘Ρ€Ρ‡Π΅ΠΌ. Лямбда-функция являСтся, ΠΏΠΎ сути, Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π­Ρ‚Π° концСпция ΠΏΠΎΠΊΠ°Π·Π°Π»Π° сСбя ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈ сСйчас Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках программирования.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Лямбда-исчислСниС [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:
Лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (Π°Π½Π³Π». [math]\lambda[/math] -term) называСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅:

ΠŸΡ€ΠΎΠ±Π΅Π» Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π΅ являСтся Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Иногда Π΅Π³ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΊΠ°ΠΊ @, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ сливался с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ символами Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС функция являСтся просто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ происходит аппликация (ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅) ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅-ΠΏΡ€Π°Π²ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π΅. Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ β€” абстракция ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС происходит созданиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Ρ‚Π΅Π»ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

[math] x\\ (x\ z)\\ (\lambda x.(x\ z))\\ (\lambda z.(\lambda w.((\lambda y.((\lambda x.(x\ z))\ y))\ w)))\\ [/math]

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π‘Π²ΠΎΠ±ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ связанныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Бвязанными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ Π² Π΄Π΅Ρ€Π΅Π²Π΅ Ρ€Π°Π·Π±ΠΎΡ€Π° Π±Ρ‹Π»ΠΈ абстракции. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ свободными.

БвязанныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” это Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Ξ±-ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠΈ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»:

[math] P=_\alpha P’ \Rightarrow \forall x \in V: \lambda x.P=_\alpha \lambda x.P’\\ P=_\alpha P’ \Rightarrow \forall Z \in \Lambda : P Z =_\alpha P’Z\\ P=_\alpha P’ \Rightarrow \forall Z \in \Lambda : Z P =_\alpha Z P’\\ P=_\alpha P’ \Rightarrow P’=_\alpha P\\ P=_\alpha P’ \ \& \ P’=_\alpha P» \Rightarrow P=_\alpha P»\\[/math]

Ξ²-рСдукция [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠΈ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»

[math]P\to _\beta P’ \Rightarrow \forall x\in V:\lambda x.P\to _\beta \lambda x.P’\\ P\to _\beta P’ \Rightarrow \forall Z\in \Lambda : P\ Z\to _\beta P’\ Z\\ P\to _\beta P’ \Rightarrow \forall Z\in \Lambda : Z\ P\to _\beta Z\ P'[/math]

ΠšΠ°Ρ€Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Нотация Π”Π΅ Π‘Ρ€Π°ΡƒΠ½Π° [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² этой Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ называСтся свободной, Ссли Π΅ΠΉ соотвСтствуСт число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ большС количСства абстракций Π½Π° ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ Π½Π΅Ρ‘ Π² Π΄Π΅Ρ€Π΅Π²Π΅ Ρ€Π°Π·Π±ΠΎΡ€Π°.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π’Π²Π΅Π΄Ρ‘ΠΌ Π½Π° основС лямбда-исчислСния Π°Π½Π°Π»ΠΎΠ³ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл, основанный Π½Π° ΠΈΠ΄Π΅Π΅, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½ΠΎΠ΅ число β€” это ΠΈΠ»ΠΈ ноль, ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½ΠΎΠ΅ число.

+1 [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… чисСл ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΡ€ΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Но Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число.

[math]n[/math] Ρ€Π°Π· ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ [math]s[/math] ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½Π½ΠΎΠΌΡƒ [math]m[/math] Ρ€Π°Π· [math]s[/math] ΠΊ [math]z[/math]

[math](\operatorname\ \bar 3\ \bar 3)\ (+1)\ 0 \equiv 6[/math]

[math](\operatorname\ ((\operatorname\ 2\ 5)(+1)\ 0)\ 4)(+1)0 \equiv 11[/math]

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

[math](\operatorname \bar 3\ \bar 3)\ (+1)\ 0 \equiv 9[/math]

Π’ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

It’s a kind of magic

[math](\operatorname\ \bar 3\ (\operatorname\ \bar 3))\ (+1)\ 0 \equiv 81[/math]

ЛогичСскиС значСния [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ»Π΅Π²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ:

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ являСтся функция ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, являСтся Π»ΠΈ число Π½ΡƒΠ»Ρ‘ΠΌ:

ΠŸΠ°Ρ€Π° [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ всСх ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ для Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС, Ссли ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌΠΎΠ΅ большС Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ. ПолоТим Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π²Π½Ρ‹ΠΌ Π½ΡƒΠ»ΡŽ. ΠŸΡƒΡΡ‚ΡŒ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ функция, которая Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ· числа Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π’ΠΎΠ³Π΄Π° Π½Π° Π΅Ρ‘ основС Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, собствСнно, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅.

Если Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ поняли, Π½Π΅ ΠΎΠ³ΠΎΡ€Ρ‡Π°ΠΉΡ‚Π΅ΡΡŒ. Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» Клини, ΠΊΠΎΠ³Π΄Π° Π΅ΠΌΡƒ Π²Ρ‹Ρ€Ρ‹Π²Π°Π»ΠΈ Π·ΡƒΠ± мудрости. А сСйчас Π½Π°Ρ€ΠΊΠΎΠ· ΡƒΠΆΠ΅ Π½Π΅ Ρ‚ΠΎΡ‚.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€ Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² лямбда-исчислСнии ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ. НапримСр, Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π».

Лямбда исчислСниС ΠΎΠ±Π»Π°Π΄Π°Π΅ΠΌ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ свойством: Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ нСподвиТная Ρ‚ΠΎΡ‡ΠΊΠ°!

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

[math]\operatorname = \operatorname\ \operatorname[/math]

[math]Y\ = \ \lambda f.(\lambda x.f(x\ x))\ (\lambda x.f(x\ x))[/math]

Π”Π΅Π»Π΅Π½ΠΈΠ΅ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ ΠΈΠ΄Π΅Π΅ΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ рСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, сдСлаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ частноС Π΄Π²ΡƒΡ… чисСл.

[math]\operatorname

= \operatorname\ \operatorname[/math]

И остатка ΠΎΡ‚ дСлСния

[math]\operatorname = \operatorname\ \operatorname[/math]

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° простоту [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

[math]\operatorname = \operatorname\ \operatorname[/math]

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ простоС число. [math]\operatorname[/math] β€” ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, большС Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ, [math]\operatorname[/math] β€” ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, большСС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ.

[math]\operatorname = \operatorname\ \operatorname[/math]

[math]\operatorname[/math] ΠΏΡ€ΠΎΠΏΡ€Ρ‹Π³Π°Π΅Ρ‚ [math]i[/math] простых чисСл Π²ΠΏΠ΅Ρ€Ρ‘Π΄. [math]\operatorname[/math] ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ число [math]i[/math] ΠΈ ΠΏΡ€ΠΎΠΏΡ€Ρ‹Π³ΠΈΠ²Π°Π΅Ρ‚ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ простых чисСл Π²ΠΏΠ΅Ρ€Ρ‘Π΄, начиная с Π΄Π²ΠΎΠΉΠΊΠΈ.

Бписки [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками чисСл Π½Π°ΠΌ понадобятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

[math]\operatorname = \operatorname\ \operatorname\ \bar 1[/math]

[math]\operatorname = \operatorname\ \operatorname[/math]

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

На основС этого всСго ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эмулятор ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Ρ‚ΡŒΡŽΡ€ΠΈΠ½Π³Π°: с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€, списков чисСл ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояния. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСкурсии ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹. Входная строка Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ списку: ΠΏΠ°Ρ€Π° ΠΈΠ· Π΄Π»ΠΈΠ½Ρ‹ ΠΈ числа, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ список стСпСнями простых. Π― Π±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» это ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π½ΠΎ ΡƒΠΆΠ΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ [math]\operatorname[1, 2][/math] я Π½Π΅ доТдался окончания выполнСния. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ лямбда-исчислСния ΠΊΠ°ΠΊ вычислитСля ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *