Я создаю DSL для диаграмм моделей C4. 1-й удар здесь Я решил, что было бы разумнее разделить концепции программного обеспечения и схему.Это означает, что положение на холсте нужно назначать только при создании диаграммы.
Поэтому, когда я попытался добавить позицию в аргументы пользовательской операции, я не могу понять, как использовать ее в выражении вычисления.
Новый построитель выглядит следующим образом:
type SystemLandscapeDiagramBuilder internal (scope, desc, size) =
member __.Yield(_) : SystemLandscapeDiagram =
SystemLandscapeDiagram.init scope desc size
[<CustomOperation("user")>]
member __.User(diagram, user, pos) : SystemLandscapeDiagram =
diagram |> SystemLandscapeDiagram.addPerson user pos
Ошибка компилятора Эта управляющая конструкция может использоваться только в том случае, если построитель выражений вычислений определяет метод 'For'
Возможно ли иметь несколько аргументов?Идеи о том, что я делаю не так?