Re[4]: F# - A Functional Programming Language
От: palm mute  
Дата: 18.10.07 13:17
Оценка: 12 (2)
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, 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 вызывает сама себя.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.