繁体   English   中英

字符串列表到Int列表解析

[英]String list to Int List parsing

我有一个看起来像这样的字符串列表

String list = ["150";"350";"100"]

我现在试图将其解析为一个int列表,以便我可以获取值并使用它们进行计算。 我现在遇到的问题是f#的新手,不确定如何执行此操作。 我正在考虑制作一个折叠函数,该函数对列表中的每个值运行System.Int32.Parse

let listParser list = List.fold (fun listParser a -> (System.Int32.Parse a) :: intlist) list

这个函数给了我String list-> Int list,但是当我运行这个函数的时候我得到了

stdin(105,12): error FS0001: This expression was expected to have type
int list    
but here has type
string -> string list 

还有更好的方法吗? 感谢任何形式的帮助!

您正在寻找的是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

List.fold似乎不符合您的要求,因为它是一种将函数应用于每个list元素并将结果累积为单个值(例如平均值)的方法。

您可以使用List.map

> let list = ["150";"350";"100"];;
> let listParser list = List.map System.Int32.Parse list;;
val listParser : list:string list -> int list

> listParser list;;
val it : int list = [150; 350; 100]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM