FSharp功能组合

时间:2015-01-30 13:12:49

标签: f#

我有三个这样的功能:

let functionA (i:int) =
    "functionA" + string i

let functionB (i:int) =
    "functionB" + string i

let functionC (i:int) =
    "functionC" + string i

我想将这些函数链接在一起,这样执行所有三个的结果就是每个返回值的数组,有点像 Seq.Collect arrayOfFunctions

有没有办法以声明方式执行此操作?如果我将functionB的参数从int更改为float,答案是否会改变?

由于

1 个答案:

答案 0 :(得分:4)

let farr = [| functionA; functionB; functionC |] 
let applyfarr farr i = Array.map (fun f -> f i) farr  

如何申请:

applyfarr farr 2 
> val it : string [] = [|"functionA2"; "functionB2"; "functionC2"|]