Основной вопрос:
Что делает для нас лямбда-исчисление , что мы не можем сделать с основными свойствами функций и обозначениями, обычно изучаемыми в алгебре средней школы?
Прежде всего, что означает абстрактное в контексте лямбда-исчисления? Мое понимание слова абстрактное - это то, что отделено от механизма, концептуального резюме концепции.
Однако лямбда-функции, покончив с именами функций, предотвращают определенный уровень абстракции. Например:
f(x) = x + 2
h(x, y) = x + 5 y
Но даже не определяя механизм этих функций, мы можем легко говорить об их составе. Например:
1. h(x, y) . f(x) . f(x) . h(x, y) or
2. h . f . f . h
Мы можем включить аргументы, если мы хотим, или мы можем полностью абстрагироваться, чтобы дать обзор того, что происходит. И мы можем быстро свести их к одной функции. Давайте посмотрим на композицию 2. У меня могут быть слои учеников, на которых я могу писать, в зависимости от моего акцента:
g = h . f . f . h
g(x, y) = h(x, y) . f(x) . f(x) . h(x, y)
g(x, y) = h . f . f . h = x + 10 y + 4
Давайте выполним вышеприведенное с помощью лямбда-исчисления или, по крайней мере, определим функции. Я не уверен, что это правильно, но я верю, что первое и второе выражения увеличиваются на 2.
(λuv.u(u(uv)))(λwyx.y(wyx))x
И умножить на 5лет.
(λz.y(5z))
Вместо того, чтобы быть абстрактным, это, кажется, входит в сам механизм того, что значит добавлять, умножать и т. Д. Абстракция, на мой взгляд, означает более высокий уровень, чем более низкий уровень.
Кроме того, я изо всех сил пытаюсь понять, почему лямбда-исчисление - даже вещь. В чем преимущество
(λuv.u(u(uv)))(λwyx.y(wyx))x
над
h(x) = x + 5 y
или комбинированная запись
Hxy.x+5y
или даже запись Хаскелла
h x y = x + 5 * y
Опять же, что делает для нас лямбда-исчисление, что мы не можем делать со свойствами и обозначениями функции f (x) -тиля, с которыми многие знакомы.