F#F#入门


备注

F#是一种“功能优先”的语言。您可以了解所有不同类型的表达式以及函数

F#编译器 - 它是开源的 - 将您的程序编译为IL,这意味着您可以使用任何.NET兼容语言(如C#)中的 F#代码;并在Mono, .NET Core或Windows上的.NET Framework上运行它。

版本

发布日期
1.x中 2005-05-01
2.0 2010-04-01
3.0 2012-08-01
3.1 2013年10月1日
4 2015年7月1日

F#互动

F#Interactive是一个REPL环境,允许您一次执行一行F#代码。

如果已使用F#安装Visual Studio,则可以通过键入"C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\Fsi.exe" 在控制台中运行F#Interactive。在Linux或OS X上,命令是fsharpi ,它应该在/usr/bin/usr/local/bin 具体取决于你安装F#的方式 - 无论哪种方式,命令应该在你的PATH 这样你就可以只需键入fsharpi

F#交互使用示例:

> let i = 1 // fsi prompt, declare i
- let j = 2 // declare j
- i+j // compose expression
- ;; // execute commands

val i : int = 1 // fsi output started, this gives the value of i
val j : int = 2 // the value of j
val it : int = 3 // computed expression

> #quit;; //quit fsi
 

使用#help;; 求助

请注意使用;; 告诉REPL执行任何以前输入的命令。

你好,世界!

这是一个简单的控制台项目的代码,打印出“Hello,World!”到STDOUT,退出时退出代码为0

[<EntryPoint>]
let main argv = 
    printfn "Hello, World!"
    0 
 

示例细分逐行:

  • [<EntryPoint>] - 一个.net属性 ,用于标记程序( )的“用于设置入口点的方法”。
  • let main argv - 这定义了一个名为main 的函数,它带有一个参数argv 。因为这是程序入口点,所以argv 将是一个字符串数组。数组的内容是执行时传递给程序的参数。
  • printfn "Hello, World!" - printfn 函数输出作为第一个参数传递的字符串**,同时附加换行符。
  • 0 - F#函数始终返回一个值,返回的值是函数中最后一个表达式的结果。将0 作为最后一行意味着该函数将始终返回零(整数)。

**这实际上不是一个字符串,即使它看起来像一个字符串。它实际上是一个TextWriterFormat ,它可以选择允许使用静态类型检查的参数。但是出于“hello world”示例的目的,它可以被认为是一个字符串。

安装或设置

视窗

如果安装了Visual Studio(包括express和community的任何版本),则应该已包含F#。在创建新项目时,只需选择F#作为语言。或者查看http://fsharp.org/use/windows/了解更多选项。

OS X.

Xamarin Studio支持F#。或者,您可以使用VS Code for OS X ,它是Microsoft的跨平台编辑器。
完成安装VS Code后,启动VS Code Quick OpenCtrl + P ),然后运行ext install Ionide-fsharp

您也可以考虑使用Visual Studio for Mac

这里描述了其他替代方案。

Linux的

通过您的发行包管理器(Apt,Yum等)安装mono-completefsharp 软件包。要获得良好的编辑体验,请使用Visual Studio Code并安装ionide-fsharp 插件,或使用Atom并安装ionide-installer 插件。有关更多选项,请参见http://fsharp.org/use/linux/