基本上我有一个方法列表,我想迭代,调用方法,并返回方法返回值列表.我可以使用Linq语法.
member public x.TakeIn(methodList : seq<(String -> Int32)>, input:String) =
methodList.Select((fun (item:String -> Int32) -> item(input))).ToList()
Run Code Online (Sandbox Code Playgroud)
但是,我不能得到地图太工作,我猜测是我缺乏F#语法知识.
member public x.TakeIn(methodList : seq<(String -> Int32)>, input:String) =
methodList |> List.map (fun (item) -> item(input))
Run Code Online (Sandbox Code Playgroud)
不应该这意味着map方法将接受seq <(String - > Int32)>,迭代,调用每个方法,并返回Int32列表?
因为methodList
是F#中的序列,所以不能将其视为列表(它是其子类型之一).因此,请确保对序列使用高阶函数并将结果转换为列表:
member public x.TakeIn(methodList : seq<(String -> Int32)>, input:String) =
methodList |> Seq.map (fun (item) -> item(input)) |> Seq.toList
Run Code Online (Sandbox Code Playgroud)