В Haskell за 5 шагов функция факториала определяется следующим образом:
let fac n = if n == 0 then 1 else n * fac (n-1)
Но для объятий там написано, что фак должен быть в фак.ч. Может ли кто-нибудь объяснить, почему это так - отсутствие возможности определять именованные функции кажется серьезным ограничением для интерпретатора?