小编Ein*_*nsL的帖子

将函数作为参数传递并使其超载

我想计算我的功能,其中一些最多使用三个参数.现在我正在使用下面相同的代码,其中包含三种变体.

let GetTime f (args : string) = 
    let sw = Stopwatch.StartNew()
    f (args)
    printfn "%s : %A" sw.Elapsed 
Run Code Online (Sandbox Code Playgroud)

我想用这个替换三个函数.

let GetTime f ( args : 'T[]) =
    let sW = Stopwatch.StartNew()
    match args.Length with
    | 1 -> f args.[0]
    | 2 -> f (args.[0] args.[1])
    printfn "%A" sW.Elapsed
    ()
Run Code Online (Sandbox Code Playgroud)

但是如果我使用它运行的三个函数,我会收到类型不匹配的错误.是否可以将函数作为参数发送并像这样使用它?

f# parametric-polymorphism

3
推荐指数
1
解决办法
217
查看次数

标签 统计

f# ×1

parametric-polymorphism ×1