前言:最近在了解F#,无意中看到一个日文的教程(http://techbank.jp/Community/blogs/gushwell/default.aspx),觉得很不错,所以希望可以和大家一起分、学习。

我们继续了解List提供的其他函数。先看看sortBy。按照字符串长度排序的代码如下:
let list = ["oracle"; "microsoft"; "ibm"; "google" ]
let x = List.sortBy (fun n -> n.Length) list
printfn "%A" x

但是在Length处有一个编译错误,原因是无法判断n是否有Length属性。知道这个原因后,修改起来也很简单:
let list = ["oracle"; "microsoft"; "ibm"; "google" ]
let x = List.sortBy (fun (n:string) -> n.Length) list
printfn "%A" x

其中,n的类型被显示指定为string。
 
接着我们看下filter函数。该函数用来过滤出和lambda表达式所指定条件的相符合的元素。
let list = [1;2;3;4;5]
let x = List.filter (fun n -> n % 2 = 0) list
printfn "%A" x

这和LINQ的Where方法类似。运行结果是[2; 4]。
 
iter函数对应的就是C#的ForEach方法。
let list = [1;2;3;4;5]
let x = List.iter (fun n -> printfn "%A" n) list

上述代码的运行结果就是顺次显示1到5。