第一章 F#简介
F#是一门跨越了多种开发模式的强大的语言。本章将简要介绍F#的核心——F#编译器、工具和它在Visual Studio 2010中的地位。
在本章中,您将创建一系列简单的F#程序,然后我会指出Visual Studio为F#开发提供的重要特性。我不会在这里过多地介绍Visual Studio,因此我建议您自己探索这个IDE,以了解得更多,或查阅这里的文档:
http://msdn.microsoft.com/en-us/vstudio/default.aspx。
即使您已经很熟悉Visual Studio,您还是应该坚持浏览本章。创建和调试F#项目和C#或者VB.NET是一样的;但是,在多文件项目中,F#有一个独特的特性。此外,F#有一个被称为“交互式F#”的特性,将能够极大地提高您的工作效率。千万不要错过!
开始了解F#
就像其他编程书籍一样,编写Hello, World程序是一个惯例,我不想破换这个传统。打开记事本,或者您喜欢的文本编辑器,创建一个名为HelloWorld.fs的文件,内容如下:
Visual Studio 2010
工具是任何一种编程语言的生命线,F#也不例外。尽管您可以用您喜欢的文本编辑器成功地编写F#代码,并通过命令行来调用编译器,您还是可以通过工具来提高效率。就像C#和VB.NET那样,F#是Visual Studio的头等公民。Visual Studio中的F#具备您所期望的所有特性,例如调试器支持、智能感知和项目模板等等。
为了创建您的第一个F#项目,您需要打开Visual Studio IDE并从菜单栏选择File→New Project,打开新建项目对话框就像图 1-1中展示的那样,在左侧的面板中选择Visual F#,在右侧的面板中选择F# Application,然后点击OK。
图 1-1 选择F# Application来创建您的第一个F#项目
在新建项目对话框中点击OK后,您将看到一个空白的代码编辑器,一个准备好用来创建您的F#杰作的空白画布。
为了开始,让我们重新访问我们的Hello, World程序。在F#编辑器中键入以下代码:
现在按下Control + F5来运行您的程序。您的程序启动后,一个命令行窗口将出现,并显示意料之中的结果,如图 1-2所示。
图 1-2 F#中的Hello, World
您的第二个F#程序
是时候开始侃侃一个不需要显式地声明Main方法就能运行的程序了。您会在下一章了解到为什么这是被允许的,但是现在先让我们创建一个更有意义的Hello, World型程序,来感受一下基础的F#语法。
例 1-1的代码将创建一个接收两个命令行参数并将它们打印到控制台的程序。此外,它还显示了当前时间。
例 1-1. 升级版 Hello World
在编写了真实的F#代码之后,可能您会好奇这一切是如何运作的。让我们看看一行一行地看看这个程序,来了解它是如何运作的。
值
例 1-1引入了三个名为greeting、thing和timeOfDay的变量:
这里的重点是关键字let将一个名称和一个值绑定在了一起。值得一提的是,和其他大多数语言不同,F#值默认是不可变的,这意味着它们初始化之后就不能被改变。我们将在第三章中探讨为什么值是不可变的,但是现在只要知道这与函数式编程有关就可以了。
F#也是大小写敏感的,因此两个名称仅有大小写的区别的值将被认为是不同的:
值的名称可以使字母、数字和下划线_的组合,或者撇号'。但是,名称必须以字母或下划线_开始。
请注意
您可以用一对刻度符号包围一个值的名称,这种情况下名称可以包含除制表符和换行符之外的任意字符。这将使您可以引用来自其他.NET编程语言中的可能与F#的关键字冲突的值: