Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, palm mute, Вы писали:
Кё>>>Кто-нить объяснит, зачем ml требует писать «let rec». Неужели и так не ясно, rec или не rec.
Кё>я про рекурсивные функции 
А что меняется? Функции — не функции — это неважно, все дело в видимости имен. Хорошо, изменим пример.
Теперь у нас будут 3 разных
функции foo:
let foo () = 1
let _ = print_int (foo ())
let foo () = foo () + 1
let _ = print_int (foo ())
let foo () = foo () + 2
let _ = print_int (foo ())
Вывод этого кода такой же, как и в предыдущем случае.
Функция let foo () = foo () + 1 вызывает одноименную функцию foo, определенную выше. Функция let
rec foo () = foo () + 1 вызывает сама себя.