У мене є те, що я б назвав філософським питанням про λ-обчислення.
Коли ви досліджуєте λ-обчислення, ви здивуєтеся, побачивши все, що ви можете там зробити. Ви можете визначити цілі числа, арифметичні операції, булеві, висловлювання "if-then-else", цикли, рекурсивні функції тощо. Я вважаю, що це було обчислено завершено.
Але з іншого боку, якщо ви враховуєте, що ви можете зробити з функціями в λ-обчисленні, ви розумієте, що єдине, що ви можете зробити, це годувати його функцією, і вона повертає іншу функцію. І цей процес ніколи не закінчується.
Тож як можна отримати результат з обчислень?
Припустимо, результат вираження - функція f
. Ви хочете перевірити, чи f
очікували ви. Ви можете перевірити його, взяти відому вам функцію, застосувати f
до неї та отримати g
. Але щоб перевірити, g
чи правильно, тепер потрібно перевірити, що g
робить. І ти починаєш все спочатку. То як ти можеш щось розповісти f
?
Мені здається, що ви можете замінити всі функції в λ-обчисленні однією функцією, функцією ідентичності I = λx.x
, і все ще працює, як описано в λ-обчисленні. Церковна цифра, 3
коли дається f
та x
повертається f(f(f(x)))
. Але оскільки f
і x
тільки може бути I
, вона повертається I
. I
застосовано до, I
а I
також повертається I
. Так I
задовольняє визначення 3
. "Булевим" (λxy.x)
і (λxy.y)
потрібні 2 аргументи, які будуть I
і I
тому обидва булеві повернуться I
. Кожна рівнозначна ідентичності, навіть якщо вони поводяться точно відповідно до своїх визначень.
Тож як ти можеш змінити? Як ви показуєте, що λ-обчислення має справу не лише з однією функцією?
Чи існує поняття ідентичності? Чи можете ви відразу визначити функцію, не оцінюючи її? Я вважаю, що було доведено, що немає можливості перевірити 2 функції на рівність.
Або λ-обчислення не стосується функцій, а формального опису того, що вони роблять? Це означає, що вирази λ визначають не лише те, що виконують функції, але й дані, якими функції маніпулюють. Отже, коли ви пишете A B
, ви не застосовуєтесь A
до цього B
, але ви застосовуєте описану рядок функцію A
до формального визначення функції, що міститься у B
поверненні іншого формального визначення.
Що насправді відбувається в λ-обчисленні? Якими математичними предметами вона займається?
Слідувати:
Гаразд, з відповіді нижче видно, що λ-обчислення стосується не стільки функцій в математичному сенсі, скільки про підмножини функцій, які можна виразити як λ вирази. Або навіть більше про маніпулювання λ-виразами.