kucheryavenkov
ХМ - как лямбда-исчисление, только про 2 операции: абстракцию и применение. В любых практичных языках есть ещё набор базовых типов, как константы в лямбда-исчислении. ХМ - о том, как из любых заранее заданных базовых типов делать более развесистые.
Ну, lambda-исчисление -- оно же тьюринг-полное, поэтому можно считать, что все базовые формы данных (скажем так) являются специальными лямбда-выражениями. Но вообще, в любом моноиде Чёрча живут, естественным образом, типы -- это идентпотентные морфизмы, которые t после t = t
, на них можно строить уже разнотипную ДЗК. Как-то так и происходит на практике, мы же умеет компилировать типизированный Haskell в нетипизированный ассемблер.