Sends for the fellow dear visitors:welcome to dongpad!


 Welcome to DongPad!

 msn


预览模式: 普通 | 列表

F# Type Tips

F#有强大的类型推理(type inference),所以在F#中不需要我们显示指定参数类型。如 let add p1 p2 = p1+p2;; 这样我们就定义了接收两个int类型参数返回int类型的一个add函数:val add : int -> int –> int,这个推理过程是由f#编译器完成的。

因为F#不使用隐式类型转换,所以如果我们对add传入float类型参数,如:add 100.0 200.0,编译将产生如下错误:

stdin(46,5): error FS0001: This expression has type float but is here used with type int

因此这里需要显示指定参数的类型,方式如:let add2 (p1:float)  p2 = p1+p2;; 这样编译器推理出add2函数接受两个float类型参数并返回float类型:val add2 : float -> float -> float。虽然在这里没有显示指定add2的p2参数类型,但是因为显示指定了F#的第一个参数为float类型,p2自然也就被推理为float类型了。因此如果有不同类型的参数,应该为这些参数都显示指定类型,add3接受一个float和一个int类型参数,并返回两个参数的连接形式string:let add3 (p1:float) (p2:int)=(string p1)+(string p2),编译器编译结果为:val add3 : float -> int -> string,在这里要注意的就是(string p1),它的意思是对p1进行强制转换。

积硅步以至千里。


Tags: DongPad F#

分类:F# | 固定链接 |评论: 0| 引用: 0 | 查看次数: 119 | 返回顶部

F#之打印函数占位符详解

打印函数主要有三个:printf、printfn和sprintf。

printf将参数打印到控制台窗口中。printfn将参数打印输出并且换行。

打印函数可以使用下面这些格式指示符:

 

%O格式指示符会将对象进行装箱操作,并调用Object.ToString函数。%A的运作方式相同,但是在调用Object.ToString之前会检查[]属性指定的任何特殊打印选项。

PS: 紧接着的是来自官方的解释,从侧面说明了 printfn "%O" false (结果为False)与 printfn "%A" false(结果为false)的区别

%O 设置通过将对象装箱并使用其 ToString 方法来打印的任何值的格式。

%A 设置使用默认布局设置打印的任何值的格式。

sprintf用于输出的目标为一个字符串的情况。

节选自:CC682,更多格式请参考官方Core.Printf的%[flags][width][.precision][type]详解


Tags: DongPad F# 占位符

分类:F# | 固定链接 |评论: 0| 引用: 0 | 查看次数: 126 | 返回顶部

F#是什么

F#是什么?F#和C#有啥区别?
微软为Visual Studio开发平台添加了最新的稳定版语言F#,成为VS的主要编程语言之一。
F#语言基于功能性编程语言概念。功能性编程语言将计算看做是数学函数的赋值,对于需要使用大量数学符号的某些领域专业人员来说,F#语言的数学特性颇具吸引力。Somasegar表示,F#的目标是成为.Net上的“上等公民”。
另外微软研究院也曾对F#语言做出过解释,F#语言集安全、性能、脚本与Modern Runtime系统(Java虚拟机和微软通用Runtime)等多种优势于一体,并支持Python等交互式脚本语言、强类型推理、ML的安全性。另外,F#语言可以访问.net库以及其他数据库工具软件。

Tags: F# DongPad

分类:F# | 固定链接 |评论: 0| 引用: 0 | 查看次数: 664 | 返回顶部