В F # порядок файлов, передаваемых компилятору, абсолютно имеет значение: компилятор F # читает программы строго слева направо и сверху вниз. Переменные и типы могут ссылаться только на те, которые определены до них, если вы явно не укажете взаимно рекурсивные отношения через and
.
Если вы пришли из C #, поначалу это может показаться ограничением. Но вы узнаете, что на практике это невероятно эффективное обеспечение организации кода и предотвращает рекурсивное безумное обращение.
Обратите внимание, что прямые ссылки на самом деле являются довольно современной функцией языков программирования и компиляторов (вы не получаете их "бесплатно"), если вам когда-либо приходилось работать с ранними компиляторами C ++, вы можете помнить о необходимости пересылки декларации, позволяющие это сделать (если компилятор выполняет память затрат на работу, которая не всегда была настолько обильной).