F# 函数式编程语言 项目简介
F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言,是函数编程语言(FP,Functional Programming),函数编程语言最重要的基础是Lambda Calculus。它是基于OCaml的,而OCaml是基于ML函 数程式语言。有时F# 和 OCaml 的程式是可以交互编译的。F#已经接近成熟,支援Higher-Order Function、Currying、Lazy Evaluation、Continuations、Pattern Matching、Closure、List Processing、Meta-Programming。这是一个用于显示.NET在不同编程语言间互通的程序设计,可以被.NET中的任意其它代码编 译和调用。F#将被集成在Visual Studio 2010中,含有对.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)
(* 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)