将列表作为位置参数传递给F#中的Python函数

Bjö*_*ist 2 f# iterable function-parameter

在Python中,您可以这样写:

def add(a, b, c):
    return a + b + c

list_of_args = [4, 5, 6]
print(add(*list_of_args))
Run Code Online (Sandbox Code Playgroud)

前面的星号list_of_args展开了iterable,使其元素是参数a,b和c的值.

你能在F#做类似的事吗?具体来说,我正在寻找一个好的或惯用的F#解决方案,并且不想用反射等来解决问题.

Dan*_*iel 5

你可以这样做:

type T =
  static member func([<ParamArray>] args: 'T[]) = printfn "%A" args

T.func(1, 2, 3)

let args = [|1; 2; 3|]
T.func(args)
Run Code Online (Sandbox Code Playgroud)

两个电话打印[|1; 2; 3|].