摘要: 看到F#的inline关键字,马上会联想到C++中也有这个。然而因为F#有类型推导的特性,两者结合起来使本来不起眼的关键字变得神通广大。 阅读全文
posted @ 2015-11-18 22:00 greatim 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 参照赵劼的博客《使用Lambda表达式编写递归函数》中用C#实现的为函数求出其 Y 组合子代码, 使用F#重写,并剖析算法。 阅读全文
posted @ 2015-05-03 18:40 greatim 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 新年发布F#的两个 Bug,都集中在module中。第一个是:[]特性在module中不起作用,CLIEvent的作用是使 F# 的事件编译后生成标准接口,方便C#调用。但是CLIEvent在module中不运作,要实现相同的效果,只能通过 type声明类,然后在类中声明静态事件。第二个是:modu... 阅读全文
posted @ 2015-01-01 13:25 greatim 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 函数式血统的另一个高峰: F#中利用对象表达式动态创建匿名类。同时介绍 IDisposable 接口的一种巧妙利用,以及如何在 C#里实现。 阅读全文
posted @ 2014-09-25 11:01 greatim 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 对比 F# 的一些函数式血统特征,对 C#进行函数式编程过程中遇到的问题,进行总结。(第一部分) 阅读全文
posted @ 2014-09-24 16:09 greatim 阅读(1095) 评论(0) 推荐(1) 编辑
摘要: F# 中 module 里的泛型变量实际上是泛型函数。就因为这个问题,导致泛型特化的优化之路尤其曲折。 阅读全文
posted @ 2014-08-31 14:07 greatim 阅读(1286) 评论(0) 推荐(0) 编辑
摘要: module 里的泛型变量,在 F# 里面,只是看起来像变量,实际上是在执行一个函数。由此,使用时如果当成真变量,就会引起逻辑错误。 阅读全文
posted @ 2014-08-28 22:32 greatim 阅读(1028) 评论(2) 推荐(1) 编辑
摘要: 使用结构时候,let和let mutable,行为间有很大区别 阅读全文
posted @ 2014-08-17 17:16 greatim 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 如是我闻,MSDN里面记载:F#数组的创建方法大概分三类:1、把初始值包含在[| 和|]之内, letarray1 = [| 1; 2; 3 |]或者letarray1 = [|123 |]2、使用Array.zeroCreate或者Array.Create,和Array.init 如果要创... 阅读全文
posted @ 2014-04-17 22:23 greatim 阅读(1043) 评论(0) 推荐(0) 编辑
摘要: 元组在编程里面出现最早是在函数式语言。而现在python、C#、VB.net、Java、Go等等已经广泛应用。元组有如下特性:1、元组里面的成员都是只读的。2、元组成员支持泛型,甚至可以衔套另一个元组。元组刚引入C#的时候,大多数人都把它当作out的语法糖。然而,它有自身存在的意义。作为函数的多返回... 阅读全文
posted @ 2014-04-12 14:36 greatim 阅读(1082) 评论(5) 推荐(1) 编辑