Вот упрощенный фрагмент метода Provided, который принимает переменное число аргументов, в данном случае 3
ProvidedMethod(methodName = "GetContext",
parameters = [ for i in [ 1..3 ] do
yield ProvidedParameter("Param" + string i, typeof<string>) ],
IsStaticMethod = true, returnType = typeof<string>,
InvokeCode = (fun args ->
<@@
let dim1 : string = %%args.[0] : string
let dim2 : string = %%args.[1] : string
let dim3 : string = %%args.[2] : string
// let dims = [for %%arg in args do yield (arg : string) ]// [1] error below
// let dims = [for arg in args do yield (%%arg : string) ]// [2] error below
let dims = [ dim1; dim2; dim3 ] //this works
String.Join("--", dims)
@@>))
Я хочу собрать все аргументы в одном списке.
ЧтоЯ пробовал и не работал, комментируется в цитате.
[1]: [FS0010] Unexpected prefix operator in expression
[FS0594] Identifier expected
[2]: [FS0446] The variable 'arg' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope.