FSharp 功能组合
FSharp Functional Composition
我有三个这样的函数:
let functionA (i:int) =
"functionA" + string i
let functionB (i:int) =
"functionB" + string i
let functionC (i:int) =
"functionC" + string i
我想将这些函数链接在一起,以便执行所有三个函数的结果是每个 return 值的数组,有点像
Seq.Collect arrayOfFunctions
有没有办法以声明方式执行此操作?如果我将函数 B 的参数从 int 更改为 float,答案会改变吗?
谢谢
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"|]
我有三个这样的函数:
let functionA (i:int) =
"functionA" + string i
let functionB (i:int) =
"functionB" + string i
let functionC (i:int) =
"functionC" + string i
我想将这些函数链接在一起,以便执行所有三个函数的结果是每个 return 值的数组,有点像 Seq.Collect arrayOfFunctions
有没有办法以声明方式执行此操作?如果我将函数 B 的参数从 int 更改为 float,答案会改变吗?
谢谢
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"|]