Matrix Net
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 31 文章- 8 评论- 69
LINQ入门教程示例使用F#的实现
在MSDN介绍LINQ的时候,在开篇的时候介绍了如何使用LINQ,并使用以下代码举例:
1
class
StartWithLINQ
{
2
static
int
[] numbers
=
new
Int32[
7
]
{
0
,
1
,
2
,
3
,
4
,
5
,
6
}
;
3
public
StartWithLINQ()
{
4
var numberQuery
=
5
from x
in
numbers
6
where
(x
%
2
)
==
0
7
select x;
8
foreach
(
int
item
in
numberQuery)
{
9
Console.WriteLine(
"
x = {0}
"
, item);
10
}
11
}
12
}
首先创建了一个数组,包含7个成员,接着在从这个序列中筛选出所有能被2整除的元素并输出。OK,初次使用的时候还是有些不太适应这个语法,感觉怪怪的。想象一下,如果我们不用LINQ,我们的做法可能会少有不同,我们会自己去Foreach这个数组,判断后输出。代码量和现在的也没有什么太大差异。
下面来看看F#的同样功能实现吧,呵呵!
Code(F#)
#light
let numbers = seq{0..9}
let numberQuery =
numbers|>Seq.filter(fun x->x%2=0)
numberQuery
上面的代码是一段脚本。首先定义一个序列,看看人家定义序列的简便语法,爽歪歪!接着使用流水线操作符,并结合Seq模块提供的筛选器,在筛选器中我们又使用了匿名方法来对数据进行筛选,生成新序列并输出,一气呵成!
以前看到关于函数式编程的资料,说如何的提高开发效率降低代码量,我还持怀疑态度,哎!不服不行啊。F#支持安全的多线程操作和并发多核心处理器优势,也许我们在一些关键组件上可以使用这些技术来提高我们的生产效率和软件的稳定性。目前来看,F#的应用领域可能更多的在数据密集型和逻辑复杂的业务处理,在服务端的优势在于线程安全和并发优势。(据说,F#的核心开发Leader是为.Net 2.0设计泛型的)
以上是本人的拙见,还希望能和大家共同学习探讨。
posted @ 2008-06-18 13:36
大约在冬季
阅读(233)
评论(2)
编辑
收藏
所属分类:
F#
发表评论
回复
引用
#1楼
2008-06-26 15:46 |
f#中文站 [未注册用户]
您的文章被我转载到
http://www.f-sharp.cn/bbs/dispbbs.asp?boardid=7&id=21
如果有任何异议请回复。
回复
引用
#2楼
2008-07-18 15:11 |
colder [未注册用户]
如果我说你这段F#代码不是LINQ 也许你会不认同
{0 .. 9}
|> Seq.filter (fun x -> x % 2 = 0)
是啊 这种写法太像LINQ了
甚至还有 Seq.orderBy Seq.groupBy
但有个根本区别 LINQ是延迟执行的 Seq却不是
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
使用Visual Studio2005入门.Net2.0系列视频教程
扩展LINQ to SQL:使用Lambda Expression批量删除数据
LINQ体验系列文章导航
LINQ to SQL异步查询
Ajax实现无刷新三联动下拉框
正则表达式30分钟入门教程
相关链接:
所属分类的其他文章:
LINQ入门教程示例使用F#的实现
F# 学习笔记(1/n)
最新IT新闻:
淘宝网合并阿里妈妈 专家称阿里巴巴或有新战略
微软研究院发布 AutoCollage - 整理并融合照片
2008年9月5日科技博客精选
SNS网站风靡影响工作效率 公司下令封杀
《孢子》正式发布
博客园新闻频道
博客园首页
社区
<
2008年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我参加的小组
创业交流
.NET 3.x
我参与的团队
.NetFramework3.0 & 3.5(WCF,WPF,WF)团队(0/566)
CLR基础研究团队(1/386)
随笔分类
F#(3)
(rss)
脚本语言(1)
(rss)
随笔档案
2008年6月 (1)
2008年3月 (1)
2008年2月 (6)
2007年11月 (1)
2007年9月 (2)
2007年8月 (4)
2007年6月 (1)
2007年5月 (1)
2007年3月 (2)
2007年2月 (1)
2006年9月 (1)
2006年8月 (1)
2006年7月 (1)
2006年6月 (1)
2006年3月 (1)
2006年2月 (1)
2005年12月 (1)
2005年11月 (2)
文章分类
AOP
(rss)
F#(1)
(rss)
MSN Messager(1)
(rss)
Office development
(rss)
ORM
(rss)
Pattern
(rss)
Vistual Studio 2005 (1)
(rss)
个人原创(2)
(rss)
设计模式(2)
(rss)
文章档案
2008年2月 (1)
2007年3月 (1)
2006年2月 (1)
2006年1月 (1)
2005年12月 (1)
2005年11月 (3)
相册
宝宝第一个暑假
漂亮宝贝
人在旅途
.NET
DAVID BLOG
flier
juqiang
CLR的研究
Terrylee
重点介绍Castle项目
卢彦
吕震宇
Silverlight
Silverlight 官方网站
Silverlight上海研发团队的Blog
最新随笔
1. LINQ入门教程示例使用F#的实现
2. 宝宝照片更新喽
3. 再谈两种不同字符串比较方法的性能对比
4. 如何让DevExpress.TreeList单元格中的自定义控件包含标签
5. 见证中国A股市场:上午大盘加速寻底 沪指跌129点,探低至4241.02
6. 漂亮宝宝100天啦!庆祝一下!
7. F# 学习笔记(1/n)
8. 权重股杀跌沪指半日破两关跌135点
9. F# 学习笔记(0/n)
10. IronPyton分析表达式
最新评论
1. re: LINQ入门教程示例使用F#的实现
如果我说你这段F#代码不是LINQ 也许你会不认同 {0 .. 9} |> Seq.filter (fun x -> x % 2 = 0) 是啊 这种写法太像LINQ了 甚至还有 Seq... (colder)
阅读排行榜
1. 两种不同字符串比较方法的性能对比(2749)
2. 再谈两种不同字符串比较方法的性能对比(1948)
3. 最近性能优化一些感触,分享中……(1916)
4. 运行Oracle数据库配置向导创建数据库失败ORA-24324的解决方案(589)
5. 如何在C#中调用 IronPython 代码 (基于IronPython 2.0A3)(332)
评论排行榜
1. 两种不同字符串比较方法的性能对比(29)
2. 最近性能优化一些感触,分享中……(15)
3. 漂亮宝宝100天啦!庆祝一下!(7)
4. 我们需要怎样的开发人员之乱谈(4)
5. 如何在C#中调用 IronPython 代码 (基于IronPython 2.0A3)(3)