может иметь несколько предикатов, с индексом, также вычисляемым как выражение, скобки в арифметических вычислениях также используют рекурсию и т. д. Кстати, хорошая книга - это мне очень помогает в понимании F #

екущий проект использует AST с 40 различными типами (описанные объединения), и несколько типов из этого AST имеют циклическую зависимость. Типы не такие большие, поэтому я положил их в один файл и применилtype ... and ... конструкция для взаимозависимых типов.

Теперь я добавляю функции, чтобы сделать некоторые вычисления для каждого элемента в AST. Поскольку существует много функций с несколькими строками кода, чтобы сделать исходный код более понятным для чтения, я разделил эти функции в разных файлах.

Это нормально в случае, когда циклическая зависимость отсутствует, также работает, когда зависимые функции находятся в одном файле - в этом случае я могу использоватьlet rec function1 ... and function2 ... строительство

Но это не будет работать в моем случае.

Также я неправильно думал, что файлы сигнатур могут помочь мне в этом, но их поведение отличается от C ++ - они используются для определения режима доступа к функциям / типам (внутренний / публичный), также здесь можно добавить заголовок комментария к функциям / типам ...

Единственное возможное решение, которое я вижу, - это перенести все функции в один файл и использоватьlet rec ... and ... and ... and ... and ... строительство

Возможно, у кого-то есть разные идеи?

Заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос