维坦
感谢您的关注!
-
Mar19No Comments
Filed under: 随笔; -
Mar19No Comments
2008年3月19日 作者:Robert Pickering 翻译:colder
F#在微软的MSR甚至是整个公司都很风光. Ralf Herbrich(MSR应用游戏组的领袖, 专攻机器自学习技术)是个典型的F#粉丝:
第一个程序是解析110GB日志数据, 拆分到300个目录中的11000个文件里, 之后再输入到SQL数据库中. 整个程序只有90行(包括注释!), 完成这项任务只花了18小时; 每秒处理10000行日志, 简直不可思议! 注意我并没有优化代码, 只是用常规的方法写的. 我真的很吃惊, 因为之前按计划整个工作要花费一周时间的.
第二个程序用于统计数百万个回馈. 之前已经开发过了, 这次我只是照搬到F#程序当中; "从SQL数据库读取数据"和"将结果写入MATLAB数据文件"两项工作同时进行, F#源代码只有100行(包括注释). 当运行时我又一次惊呆了; 上百万条数据处理只花了10分钟, 就一台普通的桌面电脑. 之前的C#程序有1000行那么长. 从开发程序到输出结果一共花了两天.
Ralf Herbrich, Microsoft Research
(http://blogs.msdn.com/dsyme/archive/2006/04/01/566301.aspx)
微软之外F#同样成长迅速. 我问过Chris Barwick(cs.hubFS.net站长, 专注F#的知名站点), 为什么你觉得使用这门语言呢? 他的回答是:我做科学数学计算已经有14年了. 这些年来我一直期望能有一个健壮的平台. 提供有效的工具进行简单构建和并行使用, 推动科学计算的发展. .NET描绘了一个提升产品访问一致性平台. F#成为这一平台上有能力进行科学数学计算的语言. 借助这些工具和其它服务器产品, 在低成本创建复杂系统过程中拥有更多选择, 代码维护成本也很低廉. F#是高级科学计算的基石.
Christopher J. Barwick, JJB Research
最后, 我与Jude O’Kelly探讨, 他是Derivatives One的一名软件设计师, 这家公司从事金融软件, 谈论的话题是为什么Derivatives One在他们的产品当中使用F#:
我们使用C#和F#测试自己的金融系统; 性能基本相同, 但是我们喜欢F#版本是因为它的语法简单明了. F#的问题在于相关信息太少了; 我相信这本书对这一现状会有很大改善.
Jude O’Kelly, Derivatives One
-
Mar9No Comments
以下为手机短信内容: (2008-03-07 17:07)
因公安局网监处调查取证需要, 您空间所在服务器暂不能开通, 公司争取尽快取回数据, 已先为您重建站点, 您可以自行上传数据备份.
-
Mar1No Comments
// 使用 F# 缩略语法 #light // 声明独有的命令空间和类 module FsTest.DrawLine // 指定包含文件夹 #I @"D:\AutoCAD 2008" // 引用托管 #r "acdbmgd.dll" #r "acmgd.dll" open Autodesk.AutoCAD.Runtime open Autodesk.AutoCAD.ApplicationServices open Autodesk.AutoCAD.DatabaseServices open Autodesk.AutoCAD.Geometry // 声明命令 [<commandmethod (?DRAWLINE?)>] let DrawLine () = let line = new Line(new Point3d(0.0, 0.0, 0.0), new Point3d(3333.0, 3333.0, 0.0)) let db = Application.DocumentManager.MdiActiveDocument.Database use trans = db.TransactionManager.StartTransaction() let bt = trans.GetObject(db.BlockTableId, OpenMode.ForRead):?> BlockTable let btr = trans.GetObject(bt.[BlockTableRecord.ModelSpace], OpenMode.ForWrite):?> BlockTableRecord btr.AppendEntity(line) |> ignore trans.AddNewlyCreatedDBObject(line, true) trans.Commit()
// 下面是才鸟老大在 DotNetARX 帮助文件中, 第一页 Geting Started 的第一段 C# 示例. // 对比一下还是蛮像的嘛~_~ Line line = new Line(new Point3d(0.0, 0.0, 0.0), new Point3d(3333.0, 3333.0, 0.0)); Database db = Application.DocumentManager.MdiActiveDocument.Database; using (Transaction trans = db.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead, false); BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite, false); btr.AppendEntity(line); trans.AddNewlyCreatedDBObject(line, true); trans.Commit(); }




评论