摘要: 类型检查可发生在编译时期(静态检查)或运行时期(动态检查)。静态类型检查是在编译器进行语义分析中进行的。如果一个语言强制实行类型规则(即通常只允许以不丢失信息为前提的自动类型转换)就称此语言为强类型,反之称为弱类型。F#使用的是静态类型检查。这意味着,如果你传入一个string 值给 类型为int的变量,那么你将得到一个编译错误。下面是F# 中一些数据类型:你可以通过let关键字来定义值,事实上let 能做的事情很多。常数定义一个int型变量:> let iInt = 1;;val iInt : int = 1(注意:文中的代码均在F# interactive 窗口中运行得到,在;; 之 阅读全文
posted @ 2012-01-04 16:10 tryfsharp 阅读(557) 评论(0) 推荐(0) 编辑
摘要: F# 入门:安装与使用 阅读全文
posted @ 2011-12-31 10:46 tryfsharp 阅读(1638) 评论(6) 推荐(3) 编辑
摘要: F# 入门 阅读全文
posted @ 2011-12-31 10:44 tryfsharp 阅读(1258) 评论(0) 推荐(1) 编辑
摘要: Mingtian Ni 问过这样的一个问题:我想改变一些类型在fsi输出中的格式,尤其是集合类型。怎样的方法才是比较合理的呢?….有哪位朋友可以提供一点信息吗? 或者一些指南和示例那就更好了。下面就是一些在F#Interactive中格式化数据的技巧。 这并不足以理解为一个指南,这仅仅能帮你入门。如果你需要更多的示例,请联系我。对F# interactive来说,一个简单的方法就是使用fsi.AddPrintTransformer来生成一个显示对象的替代品(或者使用更小的、产生一个字符串的fsi.AddPrinter函数),例如:type C(elems:int list) = member. 阅读全文
posted @ 2011-12-31 10:32 tryfsharp 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 这是个很强力的专为F#程序员开发的网络开发框架,它把F#语言转化成JavaScript语言来运行。以下是原文:Adam已经在Intellifactory(网站http://www.intellifactory.com/)上声明发布了WebSharper专业版2.2。恭喜Adam及他的团队发布这个对F#有革命意义的版本。你可以看看这些利用简洁、强大、强类型的F#语言开发的HTML5应用程序示例。这些程序是以JavaScript来运行,不难想象:有了这些因素——强类型、智能提示、Visual Studio 以及优雅的函数式编程,这些代码会变得更加的“真实”(方便编程或容易理解)。下面是Adam的博 阅读全文
posted @ 2011-12-30 10:44 tryfsharp 阅读(336) 评论(2) 推荐(1) 编辑
摘要: 前段时间,我写了一篇描述了如何为WinForms应用程序创建项目模板的博客。这篇博客描述了一个新的项目模板:提供了用F# 创建Windows Service程序需要的元素。你可以在Visual Studio Gallery里找到这个模板:http://visualstudiogallery.msdn.microsoft.com/1f2ee1da-e87f-4863-b98e-d8b7b63d2253安装完此模板后,你会在创建F#项目时看到如下图所示的模板已经被加入到F# 文件夹中了:这个模板提供了多个项目元素:一个MyService.fs和Program.fs源文件提供服务元素一个Instal 阅读全文
posted @ 2011-12-30 10:44 tryfsharp 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 在这个系列的第三部分,我们解释了F#中的轻量级代理的和交互式代理,并且看过了一些与之相关的典型的设计模式,包括内部隔离状态。第一部分分描述了F#是一种并行交互式语言及如何支持轻量级交互操作的,并且为并行CPU异步处理和并行I/O异步处理两种模式作了诠释。第二部分描述了一种通过触发事件提交部分结果的模式。模式4——你的第一个代理让我们看看你的第一个异步代理。typeAgent<'T> = MailboxProcessor<'T> let agent = Agent.Start(fun inbox -> async { while true do le 阅读全文
posted @ 2011-12-30 10:43 tryfsharp 阅读(380) 评论(0) 推荐(1) 编辑
摘要: 在这篇文章中,我们将着眼于一个常用的异步设计模式,我叫它用事件触发来报告进度。在这篇文章后面,我们将使用这种设计模式从推特上抽样读取帖子流。这是F#异步编程基础技术系列的第二部分,这里有些例子的代码是摘自F# JAOO 教程。·第一部分描述了F# 通过支持轻量级交互是一种怎样的并行和交互式语言,并且介绍了 并行CPU异步处理和并行I/O异步处理模式。·第二部分就是这篇文章。·第三部分描述了F# 中的轻量级代理、交互式代理、隔离式代理。模式3:用事件触发来报告进度让我们先来看看设计模式的本质的一个实例。下面,我们定义一个对象来协调一组asyncs的并行执行。每个工作 阅读全文
posted @ 2011-12-30 10:40 tryfsharp 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 最近,我发现不少人会遇到关于设计模式和F#编程的问题。我认为这是一个很大的努力。这个问题可以在很多方面解决:在F#代码中面向对象的设计模式是怎么样的呢?这些主要的设计模式是怎样适用于F#的设计呢?在第一类中,仅在过去的几天中我们就有责任链模式、装饰模式、观察者模式、策略模式和状态模式的F#例子,以及一堆发在F#Snippets网站上有着设计模式标签的例子。在第二类中,今天在Moirae Software博客上有一篇相关文章:SOLID和F#相关资料如果你有更多关于这些话题的文章或代码例子的链接,请随时自由地在这个板块发布。Don原文链接:http://blogs.msdn.com/b/dsym 阅读全文
posted @ 2011-12-30 10:39 tryfsharp 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 这段时间有些朋友因为要做F#3.0的讲座,需要我在F# 3.0 BUILD 讲座中的演示脚本, 我已经将它打包在本文的后面了。这些例子仅仅是为了测试Visual Studio 11 开发者预览版.它们在以后Visual Studio版本上必须做适当修改才能运行。如果这里有什么问题请通知我Demo\TwitterFeed\TwitterFeed.fsx - 用来介绍F#2.0函数式编程的一个标准的推特反馈柱状表实例Demo\ScriptSamples\netflix.fsx – 一个OData Netflix 实例Demo\ScriptSamples\sqlconnection.fsx – 一个 阅读全文
posted @ 2011-12-30 10:38 tryfsharp 阅读(185) 评论(0) 推荐(0) 编辑