F# 学习笔记(0/n)

学习F#源于最近一股强劲的函数编程的浪潮,再加上各种脚本语言在CLR平台的互动。最近一期的MSDN上对F#进行了较为详细的介绍,微软已经将该语言提升到一个较为重要的位置了,并且据说比现在的脚本引擎(例如IronPython)在性能上有一定的优势。关于这一点还需要进一步测试。
    直接下载msi文件安装,它会集成到VS开发工具中。或者你可以使用命令行工具fsi来进行交互是编程。
   
    要注意的是,在交互式编程中需要使用“;;”作为语句的分割。
    在命令提示符下输入 printf "Welcome to F# world!";;
    屏幕输出如下:
    WelCome to F# world!val it  : unit = ()

    在进行F#编程时,用的最多的就是let关键字,它用来定义数据,函数,计算的结果值以及过程。例如:

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);;
以上代码定义了一个wordCount 函数 text 参数。 words和wordSet这两个函数只在内部有效,并且不会修改外部数据,这也是函数式编程的一大好处。

下面来看看一个比较有意思的字符元组(Tuple)操作.


定义了一个url的字符串数组,直接分配给httpUrl, statement, number三个变量,是不是很方便?如果是C#来写的话估计比这个行数要多吧!o(∩_∩)o...
如果是a*b的模式,可以使用fst直接解析出第一个元素,使用snd获得第二个元素


当然我们关系的可能还是如何和CLR进行交互,Let's rock!
如果要导入CLR类型或者自定义类型请使用 open 关键字,例如
open System.Windows.Forms;;
let frm = new Form(Visible=true,TopMost=true);;
怎么这么眼熟呢?这种语法在C#3.0中是不是也出现过呢?没错,C#3.0的确借鉴了不是函数编程的思想。
回车,此时出现了Form,然后继续修改Text属性 let frm.Text -> "Welcome";;
脚本语言的特性出现了,呵呵,刚才的窗口标题是不是改变了?是不是很有意思?

兴趣是最好的老师,后面再深入讲解F#的一些核心:函数式编程。

要开会了,先到这里吧!

转载于:https://www.cnblogs.com/DreamWinter/articles/1076355.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值