F#

维基百科,自由的百科全书
跳转至: 导航搜索
F#
FSharp Logo.png
编程范型 多范型: 函數程式語言, 指令式編程, 面向对象編程, 元编程, 并发计算
发行时间 2005年  (2005) (version 1.0)
設計者 微软研究院, Don Syme
實作者 微软, The F# Software Foundation
最新发行时间 3.1.1[1] / 2013年12月25日  (2013-12-25)
型態系統 静态类型, 强类型, 类型推论
啟發語言 ML, OCaml, C#, Python, Haskell,[2] Scala, Erlang
影響語言 F*, LiveScript
作業系統 跨平台 (.NET框架, Mono, JavaScript)
許可證 Apache许可证
網站 fsharp.org

F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言,是函數程式語言FP,Functional Programming),函數程式語言最重要的基礎是Lambda Calculus。它是基于OCaml的,而OCaml是基于ML函数程式语言。有時F#和OCaml的程式是可以交互編譯的。

F#已經接近成熟,支援高阶函数、柯里化、懒惰求值、Continuations、模式匹配、闭包、列表处理和元编程。这是一个用于显示.NET在不同编程语言间互通的程序设计,可以被.NET中的任意其它代碼編譯和調用。

2002年微软開始由Don Syme帶領研發F#,從C#,LINQHaskell中獲取了經驗,2005年推出第一個版本,2007年7月31日释出1.9.2.9版。2007年底,微軟宣布F#進入產品化的階段。

F#已被集成在Visual Studio 2010中,版本是2.0,含有对.Net Framework的完全支持。

范例[编辑]

一些小小范例如下:

(* This is a comment *)
(* Sample hello world program *)
printf "Hello World!"
#light
open Microsoft.FSharp.Collection.List
(* print a list of numbers recursively *)
let rec printlist l =
    (* When using "#light", you must indent with 4 spaces *)
    if l = [] then
    else
        printf "%d\n" (nth l 0)
        printlist (tl l)
#light
(* Sample Windows Forms Program *)
 
(* We need to open the Windows Forms library *)
open System.Windows.Forms
 
(* Create a window and set a few properties *)
let form = new Form(Visible=true, TopMost=true, Text="Welcome to F#")
 
(* Create a label to show some text in the form *)
let label =
    let temp = new Label()
    let x = 3 + (4 * 5)
    (* Set the value of the Text*)
    temp.Text <- x
    (* Remember to return a value! *)
    temp
 
(* Add the label to the form *)
do form.Controls.Add(label)
 
(* Finally, run the form *)
do Application.Run(form)

F#相容于XNA Game Studio Express产品,可允许在Xbox 360上建构游戏软体。

参考文献[编辑]

  1. ^ http://visualstudiogallery.msdn.microsoft.com/4019ccb1-7adf-4ba0-b9b7-3d4149a4fa2a?SRC=VSIDE
  2. ^ Syme, Granicz & Cisternino (2007:2) "F# also draws from Haskell particularly with regard to two advanced language features called sequence expressions and workflows."

外部链接[编辑]