F# 编程/入门
F# : 入门 |
在撰写本文时,可以通过 Visual Studio 运行 F# 代码,通过其交互式顶层 F# Interactive (fsi) 运行,以及从命令行编译。本书默认情况下假设用户将通过 Visual Studio 或 F# Interactive 编译代码,除非明确指示从命令行编译。
F# 包含在 Visual Studio 2019 中。或者,用户可以 免费下载 Visual Studio Express 或 Community,这将为 F# 先驱提供开始所需的一切,包括交互式调试、断点、监视、Intellisense 以及对 F# 项目的支持。在继续之前,请确保关闭 Visual Studio 和 Visual Studio Shell 的所有实例。
要开始,用户应从 Microsoft 下载并安装最新版本的 .NET Framework。
成功安装后,用户会在其开始菜单中看到一个额外的文件夹,“Microsoft F# 2.0.X.X.” 此外,用户会注意到在 Visual Studio 的项目类型菜单中添加了“F# 项目”条目。从这里,用户可以创建和运行新的 F# 项目。
将可执行文件位置(例如 c:\fsharp\bin\
)添加到 %PATH%
环境变量是一个好主意,这样你就可以从任何位置访问编译器和 F# 交互式环境 (FSI)。
从 Visual Studio 2019 开始,最简单的方法是安装 Visual Studio 2019 for Web,网址为 [1](即使您想进行桌面解决方案)。然后,您可以在安装程序中选择 F# 语言支持。完成后,您可以创建 F# 项目。在 Nuget 中搜索其他 F# 项目类型。
让我们创建 Hello World 独立应用程序。
创建一个名为 hello.fs
的文本文件,其中包含以下代码
(* filename: hello.fs *)
let _ = printf "Hello world"
当您对值不感兴趣时,下划线用作变量名。F# 中的所有函数都返回一个值,即使调用函数的主要原因是副作用。
保存并关闭文件,然后编译此文件
fsc -o hello.exe hello.fs
现在,您可以运行 hello.exe
以生成预期输出。
打开命令行控制台(点击“开始”按钮,点击“运行”图标,键入 cmd
并按 ENTER 键)。
键入 fsi
并按 ENTER 键。您将看到交互式控制台
Microsoft F# Interactive, (c) Microsoft Corporation, All Rights Reserved
F# Version 1.9.6.2, compiling for .NET Framework Version v2.0.50727
Please send bug reports to fsbugs@microsoft.com
For help type #help;;
>
我们可以尝试一些基本的 F# 变量赋值(以及一些基本的数学运算)。
> let x = 5;;
val x : int
> let y = 20;;
val y : int
> y + x;;
val it : int = 25
最后,我们退出交互式环境
> #quit;;
- 转到控制面板,然后选择系统。
- 系统属性对话框将出现。选择“高级”选项卡,然后点击“环境变量…”。
- 在系统变量部分,从列表中选择 Path 变量,然后点击“编辑…”按钮。
- 在“编辑系统变量”文本框中,附加一个分号 (;),后跟可执行文件路径(例如
;C:\fsharp\bin\
)。 - 点击“确定”按钮
- 点击“确定”按钮
- 点击“应用”按钮
现在,当您键入 fsc
或 fsi
时,任何命令行控制台都会在此位置进行检查。
F# 在 Mac OSX、Linux 和其他 Unix 版本上使用最新的 Mono 运行。这得到名为 F# 软件基金会 的 F# 社区组织的支持。
F# 软件基金会 提供在 Linux 和 Mac 上开始使用 F# 的最新说明。构建和/或安装完成后,您可以使用“fsharpi”命令使用命令行解释器,使用“fsharpc”使用命令行编译器。
F# 软件基金会 还提供有关安装 Monodevelop F# 支持的说明。它带有项目构建系统、代码补全和语法高亮支持。
F# 软件基金会 还提供有关在其他编辑器中使用 F# 的说明。一个 F# 的 emacs 模式 也在 Github 上提供。
F# 在 Mac OSX 和 Windows 上使用最新的 Xamarin Studio 运行。这得到 Microsoft 的支持。Xamarin Studio 是用于开发跨平台手机应用程序的 IDE,但它在 Mac OSX 上运行,并使用交互式外壳实现 F#。