设为首页 加入收藏

TOP

第三章函数编程(二)(四)
2015-11-21 02:13:27 来源: 作者: 【 】 浏览:48
Tags:第三章函数 编程

程序运行结果如下:

(myOr true false) = true

(myOr false false) = false

(myAnd (true, false)) = false

(myAnd (true, true)) = true

myOr 函数有两个 Boolean 参数,放在关键字 match和 with 中间,用逗号隔开,形成元组;而myAnd 函数只有一个参数,本身就是元组。每一种方法,对创建元组模式匹配的语法是相同的,与创建元组的语法相似。

如果需要匹配元组中的值,常数或标识符要用逗号隔开,常数或标识符的位置定义了它要匹配元组中哪一项。如myOr 函数的第一、二个规则和myAnd 函数的第一规则,这些规则用常数匹配元组的一部分,如果想在规则中分别处理元组中各部分,可以使用标识符。仅仅是因为需要处理元组,但并不表示总是需要看到组成元组的各个部分。

myOr 的第三规则和 myAnd 的第二规则用通配符 _ 匹配整个元组,如果想在规则的后面用到元组中的值,也可用标识符替代。

由于模式匹配在F# 中是很常用的任务,因此,语言提供了快捷语法。如果函数的唯一目的就是针对某一件事的模式匹配,那么,使用这种语法是值得的。这个版本的模式匹配语法,用关键字function,把模式放到通常放函数参数的位置,然后,把所有可选的规则用竖线分开。下面的例子演示了这个语法,用一个简单的函数递归处理一个字符串列表,并把它连接成一个字符串。

let recconactStringList =

function head :: tail -> head +conactStringList tail

| [] -> ""

//test data

let jabber = ["'Twas ";"brillig,";"and "; "the "; "slithy "; "toves "; "..."]

//call funcation

let completJabber =conactStringList jabber

//print the result

printfn"%s" completJabber

运行结果如下:

'Twas brillig, and the slithy toves ...

模式匹配是 F# 的基础部分,在本章中还会有几个地方讲到。我们会看到针对列表、记录类型、联合类型、异常处理的模式匹配,模式匹配的最高级用法在本章最后的“活动模式”一节讨论,其他匹配的基础。在第四章要讨论针对非 F# 库函数中类型的模式匹配。

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇hdu 3067 小t的游戏 下一篇稀疏有向图最短路径

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: