Chapter3 - 列表 - List

摘要: F#的列表是一种简单的内置集合类型。F#的列表可以是一个空的列表([]),或者是一些值的集合 你可以用 :: 来连接许多的项 [代码] 你也可以在初始化列表的时候使用;来分隔列表里的项 [代码] F#还提供了 @ ,你可以用这个操作符来连接两个列表 [代码] 在同一个列表里的项都必须是同一个类型的,如果你想在里面塞一些不一样的东西进去的华。 编译器将会报出一个错误。当然,你可以强制的使用 ... 阅读全文
posted @ 2010-09-17 13:49 兴说: 阅读(352) 评论(0) 推荐(0)

Chapter3 - 操作符 - Operators

摘要: 额...事实上这节我不大想写,因为比较简单,事实上所有开发者都能看懂,而就算是其他领域的人也能很容易的理解。 当然,操作符重载啥的还是灰藏值得研究的。 列几个书上的例子吧 我们可以重载的操作符有 !$%&*+-./<=>?@^|~ 给两个个例子:[代码] 阅读全文
posted @ 2010-09-17 12:49 兴说: 阅读(193) 评论(0) 推荐(0)

Chapter3 - 匿名函数 - Anonymous Functions

摘要: F#提供了另外一个给我们去定义函数的方式,这就是使用关键字 fun 在接下来我们会给出例子。一般来说,在有些没有必要去定义一个局部使用,或者是不需要 名字的函数的时候你会用到这个特性。 比如当你的函数可能是会以参数的形式传递给另外一个函数,又或者该函数的作用小到不足以 费周折去定义它的时候。事实上,比如在使用List的时候我们就经常会用到它。 而事实上匿名函数也被称为lambda表达式(... 阅读全文
posted @ 2010-09-17 11:55 兴说: 阅读(281) 评论(0) 推荐(0)

Chapter3 - 递归 - Recursion

摘要: 递归表示定义的这个函数能够调用他自身。换句话说,这个函数 能在定义自己的时候再调用自己。 在函数式编程中经常会使用递归来代替循环。 大多数人认为,递归能够是你的代码跟容易让别人理解。 在F#中使用递归,我们只需要在定义的时候,在函数名前加上关键字 rec 即可,下面的例子就递归的用法(译者:虽然用递归这样来处理 斐波拉契数并不一定是个合适的选择) [代码] 结果: (fib 2) ... 阅读全文
posted @ 2010-09-17 08:35 兴说: 阅读(236) 评论(0) 推荐(0)

Chapter 3 - 作用域

摘要: 事实上,从这一节开始才真正讲到了F#的语法,以及一些build_in的函数之类的, 之前已经写了函数、值与标识符的定义,以及他跟我们适应的一些其他语言的区别。 这里就从作用域开始讲吧。 其实关于作用域,只需要了解一点就可以了,那就是在F#中,一切的作用域都只跟缩进有关, 而对于一个开发人员来说,最好能习惯使用空格来代替Tab,因为在不同的系统中甚至是不同的编辑器中, 对于Tab的定义是不一... 阅读全文
posted @ 2010-09-17 08:31 兴说: 阅读(217) 评论(0) 推荐(0)