Периодически возвращаясь к сабжу, неизменно замечаю за собой внутреннее ощущение порочности подхода, но выразить это весьма трудно, поскольку сабж — очень запутаная хрень, и обычно, авторы склонны добавлять мути, уходя от сути дела в дебри малозначимых деталей. Сегодня я наконец могу как-то оформить ЭТО в мысль. И это довольно просто.
Считается, что если выражение имеет нормальную форму, то при нормальном порядке вычислений оно гарантированно вычисляется. Например,
(\x.y) ((\x.x x) (\x.x x))
Да, можно по жизни ходить, и подстеливать везде соломку, явным образом, тогда ты будешь знать, что ты не ушибешься. Однако, все мы знаем, что эта модель не работает. Мы перестраховываемся только там, где это критично, да и то, безо всяких гарантий. С другой же стороны груз накладных расходов, просто не даст выполнить непосредственную задачу из-за эскалации сложности и требовательности к ресурсам, на реализацию этой, в общем-то, глупой модели.