摘要: 列表概括使创建和转化集合更加容易。你可以创建F#列表、序列、和数组而直接使用概括语法(关于数组,序列类型将在下一章介绍,这些都是.NET BCL’s 集合类型)。最简单的概括是指定范围的项目集合,通过(..)开始一个起源,到一个结束。下面给出一个示例:#light let numericList = [ 0 .. 9 ] let alpherSeq = { 'A' .. 'Z' } printfn "%A" numericList printfn "%A" alpherSeq 执行结果: [0; 1; 2; 3; 4; 5 阅读全文
posted @ 2011-11-23 16:19 银河系漫游指南 阅读(360) 评论(1) 推荐(0) 编辑
摘要: F#中的列表是F#内置的简单集合类型。一个F#列表可以为空,用方括号代表([]),也可以是一组值的串联。你可以使用F#内置的操作符(::)串联一个列表。下面的例子给出一些示例,开始第一行为空列表,第二三行为使用(::)串联多个字符串的列表。#light let emptyList = [] let oneItem = "one " :: [] let twoItem = "one " :: "two " :: [] 将值串联的语法有点冗长,因此,如果你只是想定义一个列表,可以使用如下简写。这种速记法将列表项放在方括号之间,并用分号(; 阅读全文
posted @ 2011-11-23 15:24 银河系漫游指南 阅读(977) 评论(0) 推荐(0) 编辑
摘要: 在F#中,你可以使用运算符更加美观的调用函数。F#提供了两种不同的运算符,前缀和中缀。一个前缀运算符应用于一个操作数,而中缀运算符应用于两个或更多。前缀运算符出现在操作数之前,而中缀运算符出现在两个操作数之间。运算符加上()可以变成函数来使用,也可以认为他们是函数的一种简写方式。 F#提供了丰富的运算符。可以应用于数字、逻辑、字符串和集合类型。F#和它的库中定义的运算符基本都包含在本书中,你会看到更多的使用方法与样例。 与C#一样,F#中的运算符可以重载,这意味一个运算符可以应用于多个类型。与C#不同的是,两个操作数必须是同一类型,否则编译器将产生错误(不要质疑F#的约束,这是创建稳健系统更. 阅读全文
posted @ 2011-11-23 13:56 银河系漫游指南 阅读(486) 评论(0) 推荐(0) 编辑
摘要: F#提供另一种定义函数的方式,使用关键字fun。通常情况下,使用这个符号不需要给函数一个名称,因此,有时也称其为匿名函数,或称为lambda函数,也可称其为lambda表达式。一个函数不需要名字的想法可能有点奇怪,但如果一个函数仅做为一个参数传递给另一个函数,那么它就不需要自己的名字。下面是一个示例。#light let x = (fun x y -> x + y) 1 2 你可以创建一个使用关键字function的匿名函数。创建这种函数的方法不同于使用关键字fun,因为你可以在使用关键字function时使用模式匹配,而无需match test-expression with关键字。它 阅读全文
posted @ 2011-11-23 10:46 银河系漫游指南 阅读(371) 评论(0) 推荐(0) 编辑