Я работаю над IronJS, и один из наших исходных файлов становится очень длинным.
Прямо сейчас, я пытаюсь работать с .NET. Я добавляю метод TryBinaryOperation
к Undefined
, так что С# может использовать семантику JavaScript значения Undefined.
Однако это вводит зависимость от типа Operators
, которая вызывает циклическую зависимость.
Runtime.fs:
type BoxedValue() =
struct
// Contains IsUndefined and get_Undefined, referencing the Undefined class, below.
...
and type Undefined() =
inherit DynamicObject()
...
override x.TryBinaryOperation(binder:BinaryOperationBinder, arg:obj, result:obj byref) : bool =
// Here, we are referencing BoxedValue, above.
result <- Operators.add(Und, BoxedValue.Box(arg))
true
...
Operators.fs:
type Operators =
...
// Here, we are referencing BoxedValue.
static member add(BoxedValue l, BoxedValue r)
...
Итак, у нас есть этот набор зависимостей:
В идеале мы хотели бы разбить каждый из них на собственный файл.
Возможно ли, что в F # есть кросс файлы круговых зависимостей?