F#一种函数式编程语言

近几年来,编程语言的一个重要的主题已经转向 函数式 编程 的观念

诸如 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文件中,如下:
    

# light
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/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值