За іронією долі, назва вказана на точці, але не так, як ви, здається, маєте на увазі, що це "числення лямбда - просто нотаційна умова", яка не є точною.
Ламбда-терміни не є функціями 1 . Вони є фрагментами синтаксису, тобто колекціями символів на сторінці. У нас є правила поводження з цими наборами символів, що значно значно зменшує бета-версію. Ви можете мати кілька різних лямбда-термінів, які відповідають одній і тій же функції. 2
Я звернуся безпосередньо до ваших пунктів.
По-перше, лямбда - це не ім'я, яке повторно використовується. Це не тільки буде надзвичайно заплутано, але ми не пишемо (або ), що ми робимо, якби було назвою функції, як і ми пишемо . У ми можемо замінити (якби він був визначений лямбда-терміном) терміном лямбда, що створює щось на зразок означає - вираз, який може представляти функцію, а не декларація, що оголошує функцію (названаλ ( x )( λ x ) λf( х )f( х )f( λ у. у)(x)(λy.y)λабо що-небудь ще). У будь-якому випадку, коли ми перевантажуємо термінологію / позначення, це (одні сподівання) робиться таким чином, коли це може бути розчленоване через контекст, що, звичайно, не може бути випадком лямбда-термінів.
Наступний ваш пункт - це добре, але дещо не має значення. Це не змагання, де існують Загальні положення та функції команди, і лише один може перемогти. Основним застосуванням лямбда-термінів є вивчення та розуміння певних видів функцій. Поліном не є функцією, хоча ми часто їх неохайно ототожнюємо. Вивчення многочленів не означає, що ми думаємо, що всі функції повинні бути поліномами, а також не так, що поліноми повинні "робити" щось "нове", щоб їх варто вивчити.
Встановлені теоретичні функції не є чорними полями, хоча вони повністю визначаються їх співвідношенням введення-виведення. (Вони буквально є їх відношенням введення-виведення.) Ламбда-терміни також не є чорними полями, і вони не визначаються їх співвідношенням введення-виведення. Як я вже згадував раніше, ви можете мати різні лямбда-терміни, які створюють однакове відношення введення-виведення. Це також підкреслює той факт, що лямбда-терміни не можуть бути функціями, хоча вони можуть викликати функції. 2
Насправді, аналогія між многочленами та лямбда-термінами дуже близька, і я підозрюю, що ви, можливо, не оціните різницю між многочленом та функцією, яку він представляє, тому я трохи деталізую. 3 Зазвичай, коли вводяться поліноми, як правило, з реальними коефіцієнтами, вони трактуються як реальні функції певного типу. Тепер розглянемо теорію регістрів зсуву лінійної зворотної зв'язку (LFSRs). Це багато в чому теорія (одноперемінних) многочленів над , але якщо ми вважаємо це функцією , то існує максимум таких функції. Однак існує нескінченна кількість многочленів над . 4F2F 2 → F 2 4 F 2 F 2 → F 2 F 2 2 N → 2 N F2→F24F2Один із способів побачити це - це те, що ми можемо інтерпретувати ці поліноми як щось інше, ніж функції, насправді будь-яка -алгебра буде робити. Для LFSR ми зазвичай трактуємо поліноми як операції над бітовими потоками, які, якби ми хотіли, можуть бути представлені як функції , хоча переважна більшість таких функцій не були б в образі інтерпретації LFSR.F2→F2F22N→2N
Це стосується і лямбда-термінів, і ми можемо трактувати обидва як речі, крім функцій. Вони також є набагато більш об'єктивними об'єктами, з якими можна працювати, ніж типово незліченна кількість нескінченних функцій. Вони обидві набагато більш обчислювальні, ніж довільні функції. Я можу написати програму для маніпулювання поліномами (з коефіцієнтами, які принаймні обчислювані) і лямбда-термінами. Дійсно, нетипізовані лямбда-терміни є однією з оригінальних моделей обчислюваних функцій. Ця більш символічна / синтаксична, обчислювальна / обчислювальна перспектива, як правило, більше підкреслюється, особливо для нетипового обчислення лямбда, ніж більш семантичні інтерпретації лямбда-числення. Набравтерміни лямбда - це набагато більш керовані речі і їх, як правило, (але не завжди) можна легко інтерпретувати як задані теоретичні функції, але вони також можуть бути інтерпретовані ще більш широким класом речей, окрім функцій, ніж нетипізоване обчислення лямбда. Вони також мають власну синтаксичну теорію і дуже глибокий зв’язок з логікою .
1 Можливо, питання може піти іншим шляхом. Можливо, у вас неправильне розуміння, що таке функція.
2 Це насправді не так просто. Для нетипового обчислення лямбда насправді немає сенсу наївно інтерпретувати довільні лямбда-терміни як теоретико-множинні функції . Ви можете почати це бачити, намагаючись сформулювати, якою має бути область інтерпретації. Якщо я трактую лямбда-термін як елемент множини , я також хочу інтерпретувати його як функцію на та оскільки я хочу інтерпретувати додаток як додаток функції. Ви закінчуєте (або ослаблення цього), що справедливо лише для одиночного набору. Що нам потрібно для нетипового обчислення лямбда - це рефлексивний об'єктDDDDD⊆D, а для категорії множин немає нетривіальних рефлексивних об'єктів. Історія є досить різною для введених лямбда-термінів, але все ще може бути нетривіальною.
3 Якщо ви зрозуміли це розрізнення, то аналогія повинна бути досить інформативною.
4 Ця проблема не виникає з полями, що характеризуються 0, як складні числа, дійсні значення, раціональні чи цілі числа, тому відмінність не така різка, хоча вона все ще існує.