摘要: 类型检查可发生在编译时期(静态检查)或运行时期(动态检查)。静态类型检查是在编译器进行语义分析中进行的。如果一个语言强制实行类型规则(即通常只允许以不丢失信息为前提的自动类型转换)就称此语言为强类型,反之称为弱类型。F#使用的是静态类型检查。这意味着,如果你传入一个string 值给 类型为int的变量,那么你将得到一个编译错误。下面是F# 中一些数据类型:你可以通过let关键字来定义值,事实上let 能做的事情很多。常数定义一个int型变量:> let iInt = 1;;val iInt : int = 1(注意:文中的代码均在F# interactive 窗口中运行得到,在;; 之 阅读全文
posted @ 2012-01-04 16:10 tryfsharp 阅读(595) 评论(0) 推荐(0)
摘要: F# 入门:安装与使用 阅读全文
posted @ 2011-12-31 10:46 tryfsharp 阅读(1673) 评论(6) 推荐(3)
摘要: F# 入门 阅读全文
posted @ 2011-12-31 10:44 tryfsharp 阅读(1304) 评论(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 阅读(222) 评论(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 阅读(344) 评论(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 阅读(174) 评论(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 阅读(401) 评论(0) 推荐(1)
摘要: 在这篇文章中,我们将着眼于一个常用的异步设计模式,我叫它用事件触发来报告进度。在这篇文章后面,我们将使用这种设计模式从推特上抽样读取帖子流。这是F#异步编程基础技术系列的第二部分,这里有些例子的代码是摘自F# JAOO 教程。·第一部分描述了F# 通过支持轻量级交互是一种怎样的并行和交互式语言,并且介绍了 并行CPU异步处理和并行I/O异步处理模式。·第二部分就是这篇文章。·第三部分描述了F# 中的轻量级代理、交互式代理、隔离式代理。模式3:用事件触发来报告进度让我们先来看看设计模式的本质的一个实例。下面,我们定义一个对象来协调一组asyncs的并行执行。每个工作 阅读全文
posted @ 2011-12-30 10:40 tryfsharp 阅读(369) 评论(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 阅读(140) 评论(0) 推荐(0)
摘要: 在F#中的异步和并行设计模式:并行化的CPU和I/O计算F#是一种并行地、交互式的语言。在这点上,我们的意思是:运行F#程序既能有多个实时的赋值(例如:.NET线程主动计算F#的结果)又能有多个等待的响应(例如:等待对事件和消息作出响应的回调和代理)。编写并行和交互式程序的一个简单方法是使用F#异步表达式。在这篇和接下来的文章中,我将向你介绍F#异步编程的一些基本方法---- 粗略地讲,这些就是通过F#异步编程实现的设计模式。我假设你已经知道了异步的基本知识,如果还不清楚请看这样的入门指南。我们用两个简单的设计模式来开始介绍:并行CPU 异步处理和并行I/O 异步处理第三部分介绍了F#中的轻量 阅读全文
posted @ 2011-12-30 10:38 tryfsharp 阅读(342) 评论(0) 推荐(0)