F# 开始上路

最近看到MS已经发布了VS2010 beta版,忍不住下载下来体验一番。的确界面比前几版改进

了不少,不仅仅是界面,内容也增加了不少。最引起我注意的是里面有个叫F#的家伙。什么

语言?以前听过D语言,没想到现在都到F了(哈哈,好傻的推论)。随后上网搜了一顿,发

现这个叫F#好像相当的不错,特别强调这是一种函数式编程语言。我对什么是函数式编程不

是很了解,所以也想学习学习。终于,功夫不负有心人,找到了一本Expert F#的电子版。好

像这本书就是F#的设计者写的,我想应该不错。
今天尝试了书里的第一个例子程序,没想折腾了我半天。程序就是我上一篇的博客。强调一下

我没有使用VS2010来F#进行开发,因为VS2010对F#的支持显然还不很完善,连

FSharp.PowerPack都找不到。所以还是用VS2008和F#安装包1.9.2。
今天的学习到的要点是对F#程序语法的理解
let wordCount text =
    let words = String.split [' '] text
    let wordSet = Set.of_list words
    let nWords = words.Length
    let nDups = words.Length - wordSet.Count
    (nWords, nDups)
这个是书里的程序,初看起来比较怪异,毕竟和C/C++/C#的程序区别很明显。let是F#程序

最重要的关键字,它用来声明函数与值。其后需要跟上一个函数名或值,如wordCount;如

果是函数名则需要在其后跟上参数,如text;程序的最后(nWords, nDups)表示该函数有

两个整型的返回值。
如果你在F#的交换环境中,输入这段程序,环境会提示你如下:
val wordCount : string -> int * int
这里的提示很清楚的告诉我们,这wordCount函数输入为字符串,输出为两整型。

由于F#没有类似于C/C++的主函数,所以如果我们想在VS环境中调试这个程序,我们需要键入:
#light
/// Analyze a string for duplicate words
let wordCount text =
    let words = String.split [' '] text
    let wordSet = Set.of_list words
    let nWords = words.Length
    let nDups = words.Length - wordSet.Count
    (nWords, nDups)
   
let showWordCount text =
    let nWords,nDups = wordCount text
    printfn "--> %d words in the text" nWords
    printfn "--> %d duplicate words" nDups
  
let print = showWordCount "Hello world Hello"
红色字体是输出的入口函数

转载于:https://www.cnblogs.com/moonz-wu/archive/2009/09/01/1557757.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值