我有一个类似于
的字符串列表String list = ["150";"350";"100"]
我现在正在尝试将其解析为一个int列表,以便我可以获取值并使用它们进行计算。我现在遇到的问题对于f#来说还是很新的,不知道如何做到这一点。 我正在考虑制作一个折叠函数,它对列表中的每个值运行System.Int32.Parse
let listParser list = List.fold (fun listParser a -> (System.Int32.Parse a) :: intlist) list
这个函数给我字符串列表 - > Int列表,但是当我运行此函数时,我得到了
stdin(105,12): error FS0001: This expression was expected to have type
int list
but here has type
string -> string list
更好的方法吗?感谢任何形式的帮助!
答案 0 :(得分:3)
您正在寻找的是List.map功能:
let list = ["150";"350";"100"]
let listOfInts = List.map System.Int32.Parse list
使用lambda,第二行是
let listOfInts = List.map (fun a -> System.Int32.Parse a) list
但在这种情况下你不需要lambda。
在F#中使用集合时,使用管道转发操作符是一种常见做法,如下所示:
let listOfInts = list |> List.map System.Int32.Parse
答案 1 :(得分:3)