近几年来,编程语言的一个重要的主题已经转向 函数式 编程 的观念 。
诸如 C# 中的 lambda 表达式和 .NET 2.0 中的范型等语言特性都源于函数式语言,而 LINQ 更是直接基于函数式编程技术。通过 LINQ 和 Parallel FX ,函数式语言的想法正帮助我们解决当今业界所面临的最大挑战:从防止数据和对象之间的错误匹配,到多核与并行计算领域所带来的挑战 。
微软研究院已经着手在一些项目中研发这些关键技术中几个技术。 MSR 目前所研发的很有前途的项目之一就是由 Don Syme 带领的 F# 编程语言。 F# 起源于函数式编程的传统(因此是 “F” )。虽然它也从 C# , LINQ 和 Haskell 中获取了经验,但它也深深地植根于 ML 家族的语言。从一开始, F# 就被设计成 .NET 家族的一等公民。这意味着 F# 是运行在 CLR 之上的,包含面向对象的编程,并确保了和 .NET 框架的平稳集成 。
我是技术在研究组织和产品开发组织之间转移的狂热追求者。正因为这样的技术转移,我们才能够将很好的研究想法 “ 产品化 ” ,并及时的交付给客户。这是微软从 15 年前创立微软研究院至今发生的最好的事情之一。现在我们有了另一个技术转换的例子。我们将与 Don Syme 以及微软研究院的其他人一起合作,将 F# 语言完全集成进 Visual Studio ,并继续对 F# 进行创新和改进。我认为, F# 是基于 CLR 的另一个头等编程语言 。
有几方面的因素激发了我们对 F# 的兴趣。正如我先前所提到的,我们旨在把这样好的想法从函数式编程的世界延续至主流的开发。此外,函数式编程有些数学倾向,这似乎很自然的吸引了那些用数学符号表述关键领域的专业人士,这些领域包括金融、科学和技术运算。强类型系统所带来的一些保障是它语法上最大的吸引力。这些保障在以上这些领域中常常会很关键,而且还能通过 Visual Studio 带来极好的工具体验 。
另一个动机是进行不断的投资,使 .NET 框架成为学术领域的不错选择。现在,世界上许多计算机科学专业教授函数式编程语言。我们相信,通过 F# 和诸如 IronPython 、 IronRuby 之类的语言,我们能为学生和教育工作者们提供当前主流之外的其他选择,并且能在课程中使用这些语言。这一点为教育工作者提供了一个选择,使他们能在不同的课程中使用 Visual Studio 作为其一致的工具集 。
原帖: http://blog.joycode.com/soma/archive/2007/10/22/109542.joy
最近专门抽了一些时间大概了解了一下F#, 对里面的类型定义,事件声明绑定等进行了
初步学习,今天的这个DEMO因为时间原因写的比较简单。主要是对使用F#进行开发时的流
程做了一个简单的总结。有兴趣的朋友可以帮助补充一下。好了,费话不多说了。
在使用F#开发首先,我们要先去其 官方网站 下载其最新的CTP版本, 下载链接 .
我们只要下载安装相应的InstallFSharp.msi 文件即可。
首先我们要简要的创建一个F#项目,如下图:
因为当前DEMO要使用winform窗口,所以这里要添加对System.Windows.Forms,System.Drawing的引用:
接着就是将DEMO的代码粘帖到Program.fs文件中,如下:
open System.Windows.Forms
type MyForm =
inherit Form
val l :Label
val b :Button
member t.InitializeComponent() =
t.Text <- " F# Sample "
t.Controls.Add t.l
t.Controls.Add t.b
t.b.Click | > Event.listen ( fun evArgs ->
t.l.Text <- t.l.Text + " 您好! "
)
new () as t =
{
b = new Button(Text= " 点 击 " ,Location = new System.Drawing.Point( 100 , 128 ))
l = new Label(Text= " 显示信息: " ,Location = new System.Drawing.Point( 100 , 100 ), Size= new System.Drawing.Size( 200 , 20 ))
}
then
t.InitializeComponent()
let form1 = new MyForm(Visible= true , TopMost= true )
do Application.Run(form1)
然后我们使用ctrl+all,选中所有代码,并右击鼠标,在弹出菜单中选择:
这样,交互控制台会运行该段选中的代码,显示如下图所示:
当点击按钮时,显示如下信息:
看来使用F#写的代码要比我们使用VB.NET和C#在代码量上要少许多,呵呵。
好了,今天的内容就先到这里了。
原文链接: http://www.cnblogs.com/daizhj/archive/2009/01/05/1369556.html
作者: daizhj, 代震军
Tags: F#,FSharp
网址: http://daizhj.cnblogs.com/