<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"> <channel><title><![CDATA[DongPad]]></title><link><![CDATA[http://www.dongpad.com]]></link> <link rel="Shortcut Icon" href="favicon.ico" /> <description>Every day is a new beginning!</description><copyright>2.0 beta 03</copyright> <language>zh-cn</language><item><title><![CDATA[F#对斐波那契数列求和]]></title><description><![CDATA[This Article is Published by Live Writer。<p>如题,1+1+2+3+5+8+13+…?</p>  <p>let sumfib n =    <br />&#160;&#160;&#160; let rec fib x =     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; match x with     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; | 1 -> 1     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; | 2 -> 1     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; | x -> fib(x-2)+fib(x-1)&#160;&#160;&#160; <br />&#160;&#160;&#160; let rec addfib x =     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; match x with     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; | 1 -> 1     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; | x -> fib (x)+ addfib (x-1)&#160;&#160;&#160; <br />&#160;&#160;&#160; addfib n</p>  <p><strong><font color="#808040">cool!</font></strong></p>
]]></description><author><![CDATA[Jack]]></author><link><![CDATA[http://www.dongpad.com/FSharp-20100811-257.html]]></link><pubdate><![CDATA[2010-8-11 14:01:39]]></pubdate></item><item><title><![CDATA[F# Type Tips]]></title><description><![CDATA[<p>F#有强大的类型推理（type inference），所以在F#中不需要我们显示指定参数类型。如 <font color="#ff0000"><strong>let add p1 p2 = p1+p2;;</strong></font> 这样我们就定义了接收两个int类型参数返回int类型的一个add函数：<font color="#ff0000"><strong>val add : int -> int –> int</strong></font>，这个推理过程是由f#编译器完成的。</p>  <p>因为F#不使用隐式类型转换,所以如果我们对add传入float类型参数，如：add 100.0 200.0，编译将产生如下错误：</p>  <p><strong><font color="#de96a0">stdin(46,5): error FS0001: This expression has type float but is here used with type int</font></strong></p>  <p>因此这里需要显示指定参数的类型，方式如：<font color="#ff0000"><strong>let add2 (p1:float)&#160; p2 = p1+p2;;</strong></font> 这样编译器推理出add2函数接受两个float类型参数并返回float类型：<font color="#ff0000"><strong>val add2 : float -> float -> float</strong></font>。虽然在这里没有显示指定add2的p2参数类型，但是因为显示指定了F#的第一个参数为float类型,p2自然也就被推理为float类型了。因此如果有不同类型的参数，应该为这些参数都显示指定类型，add3接受一个float和一个int类型参数，并返回两个参数的连接形式string：<strong><font color="#ff0000">let add3 (p1:float) (p2:int)=(string p1)+(string p2)</font></strong>，编译器编译结果为：<font color="#ff0000"><strong>val add3 : float -> int -> string</strong></font>，在这里要注意的就是(string p1)，它的意思是对p1进行强制转换。</p>  <p>积硅步以至千里。</p><br />
]]></description><author><![CDATA[Jack]]></author><link><![CDATA[http://www.dongpad.com/FSharp-20100624-254.html]]></link><pubdate><![CDATA[2010-6-24 12:51:43]]></pubdate></item><item><title><![CDATA[F#之打印函数占位符详解]]></title><description><![CDATA[<p>打印函数主要有三个：<font color="#ff0000"><strong>printf、printfn和sprintf。</strong></font></p>  <p>printf将参数打印到控制台窗口中。printfn将参数打印输出并且换行。</p>  <p>打印函数可以使用下面这些格式指示符：</p>  <p><img src="http://www.dongpad.com/UserFiles/Image/fsharp_printf_indicators.png" />&#160;</p>  <blockquote>   <p>%O格式指示符会将对象进行装箱操作，并调用Object.ToString函数。%A的运作方式相同，但是在调用Object.ToString之前会检查[<StructuredFormatDisplay>]属性指定的任何特殊打印选项。</p>    <p>PS: 紧接着的是来自官方的解释,从侧面说明了 printfn "%O" false (结果为<font color="#ff0000"><strong>False</strong></font>)与 printfn "%A" false(结果为<font color="#ff0000"><strong>false</strong></font>)的区别</p>    <p><font color="#ff0000"><strong>%O 设置通过将对象装箱并使用其 ToString 方法来打印的任何值的格式。</strong></font></p>    <p><font color="#ff0000"><strong>%A 设置使用默认布局设置打印的任何值的格式。</strong></font></p> </blockquote>  <p>sprintf用于输出的目标为一个字符串的情况。</p>  <p>节选自:<a href="http://www.cnitblog.com/cc682/archive/2010/05/24/66297.html" target="_blank">CC682</a>,更多格式请参考<a href="http://msdn.microsoft.com/zh-cn/library/ee370560.aspx" target="_blank">官方Core.Printf的%[flags][width][.precision][type]详解</a></p><br />
]]></description><author><![CDATA[Jack]]></author><link><![CDATA[http://www.dongpad.com/FSharp-20100623-252.html]]></link><pubdate><![CDATA[2010-6-23 13:05:18]]></pubdate></item><item><title><![CDATA[F#是什么]]></title><description><![CDATA[F#是什么？F#和C#有啥区别？ <br>微软为Visual Studio开发平台添加了最新的稳定版语言F#，成为VS的主要编程语言之一。<br>F#语言基于功能性编程语言概念。功能性编程语言将计算看做是数学函数的赋值，对于需要使用大量数学符号的某些领域专业人员来说，F#语言的数学特性颇具吸引力。Somasegar表示，F#的目标是成为.Net上的“上等公民”。 <br>另外微软研究院也曾对F#语言做出过解释，F#语言集安全、性能、脚本与Modern Runtime系统(Java虚拟机和微软通用Runtime)等多种优势于一体，并支持Python等交互式脚本语言、强类型推理、ML的安全性。另外，F#语言可以访问.net库以及其他数据库工具软件。 <br />

]]></description><author><![CDATA[Jack]]></author><link><![CDATA[http://www.dongpad.com/FSharp-20090726-205.html]]></link><pubdate><![CDATA[2009-7-26 23:33:58]]></pubdate></item></channel></rss>
