如何通过实例学习F实现高效编程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1750个文字,预计阅读时间需要7分钟。
原创新锐,探索未知,思维碰撞,激发潜能。在这里,我们汇聚创意火花,用文字搭建思想的桥梁,用故事点亮生活的灯塔。跟随我们的步伐,一起踏上精彩的原创之旅。
F#随着VSTS 2010 Beta1 发布也有一段时间了,园子里应该也有不少人对它感兴趣吧。下面的例子是我在学F# 基本语法时写的一个简单Sieve of Eratosthenes实现,通过剖析这一小段代码,我希望大家能对F#有个简单认识,并能自己写一些简单的小程序。1letGetAllPrimesBeforen=
2letcontainer=Array.create(n+1)0
3letrecloopacc=function
4|[]->List.revacc
5|hd::tl->
6ifcontainer.[hd]=1then
7loopacctl
8else
9forjin[hd..hd..n]do
10container.[j]<-1
11loop(hd::acc)tl
12loop[][2..n]
13
14letprimesBefore120=GetAllPrimesBefore120
废话少说,直接进入正题吧
第一行,申明函数GetAllPrimesBefore, 并且该函数有一个参数n, 在这里我没有指定n的类型,因为编绎器可以通过函数体对n的类型进去推断,比如在本例中,n就是int类型,当然我们也可以显示的指定n的类型,比如 let GetAllPrimesBefore (n:int),这样我们就指定了n为int型 (注意:(n:int)中的括号不能省略,let GetAllPrimesBefore n : int 的意思是该函数返回的值的int型)。
本文共计1750个文字,预计阅读时间需要7分钟。
原创新锐,探索未知,思维碰撞,激发潜能。在这里,我们汇聚创意火花,用文字搭建思想的桥梁,用故事点亮生活的灯塔。跟随我们的步伐,一起踏上精彩的原创之旅。
F#随着VSTS 2010 Beta1 发布也有一段时间了,园子里应该也有不少人对它感兴趣吧。下面的例子是我在学F# 基本语法时写的一个简单Sieve of Eratosthenes实现,通过剖析这一小段代码,我希望大家能对F#有个简单认识,并能自己写一些简单的小程序。1letGetAllPrimesBeforen=
2letcontainer=Array.create(n+1)0
3letrecloopacc=function
4|[]->List.revacc
5|hd::tl->
6ifcontainer.[hd]=1then
7loopacctl
8else
9forjin[hd..hd..n]do
10container.[j]<-1
11loop(hd::acc)tl
12loop[][2..n]
13
14letprimesBefore120=GetAllPrimesBefore120
废话少说,直接进入正题吧
第一行,申明函数GetAllPrimesBefore, 并且该函数有一个参数n, 在这里我没有指定n的类型,因为编绎器可以通过函数体对n的类型进去推断,比如在本例中,n就是int类型,当然我们也可以显示的指定n的类型,比如 let GetAllPrimesBefore (n:int),这样我们就指定了n为int型 (注意:(n:int)中的括号不能省略,let GetAllPrimesBefore n : int 的意思是该函数返回的值的int型)。

