1.1. Пример работы
2. Теория
2.1. λ-исчисление
2.2. Связь с рекурсивными функциями
2.3. Примеры работы
Программа должна уметь работать с вложенными лямбда-функциями, а также иметь графический интерфейс.
2.1. λ-исчислениеформальная система, разработанная американским математиком Алонзо Чёрчем, для формализации и анализа понятия вычислимости.
λ-исчисление может рассматриваться как семейство прототипных языков программирования. Их основная особенность состоит в том, что они являются языками высших порядков. Тем самым обеспечивается систематический подход к исследованию операторов, аргументами которых могут быть другие операторы, а значением также может быть оператор. Языки в этом семействе являются функциональными, поскольку они основаны на представлении о функции или операторе, включая функциональную аппликацию и функциональную абстракцию.
2.2. Связь с рекурсивными функциями
Рекурсия — это определение функции через себя; на первый взгляд, лямбда-исчисление не позволяет этого, но это впечатление обманчиво. Например, рассмотрим рекурсивную функцию, вычисляющую факториал:
f(n) = 1, if n = 0; else n × f(n - 1)
В лямбда-исчислении, Y g — неподвижная точка g; продемонстрируем это:
Y g
(λh.(λx.h (x x)) (λx.h (x x))) g
(λx.g (x x)) (λx.g (x x))
g ((λx.g (x x)) (λx.g (x x)))
g (Y g)
2.3. Пример
```text λx.λy.x+(5*y) 10 (λx.λy.y-x+10 5 (λu.u+8 1)) > 80
λx.λy.λz.x+y+z 1 (λx.x+2 3) 5
11
λx.λy.λz.x+y+y+z 1 2 3
8
<br>
