Скорость не является большой проблемой. Например, вы можете решить использовать церковные цифры, но оптимизировать реализацию так, чтобы числа представлялись как обычно - таким образом, чтобы он был полностью прозрачен для пользователя. Результирующие числа, очевидно, будут работать так же хорошо, как и на любом языке, за исключением случаев, когда люди пытаются реализовать свои собственные арифметические операции и обнаруживают, что они не такие быстрые, как в реализации, или когда они обнаруживают, что используют встроенную 7
намного быстрее, чем соответствующее лямбда-выражение ... Но это указывает на намного худшую проблему. В простом лямбда-исчислении есть только функции с одним аргументом. Это означает, что вы работаете на языке ассемблера очень низкого уровня, где нет ошибок типа, поскольку все это просто функции. На самом деле, если вы придерживаетесь только простого лямбда-исчисления, ошибок вообще не будет. Здесь очень уместна аналогия с машинным кодом: там вы также можете делать все, что захотите - добавить две строки, и в результате получится какое-то случайное число. На языке лямбда-исчисления отправьте некоторую кодировку списка числовой функции, и она с радостью возвратит (поддельный) ответ.