Hello World
Spiga

标签:函数式编程

编程语言的发展趋势及未来方向(3):函数式编程

2010-05-04 11:09 by 老赵, 12043 visits
摘要:这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲。由于最近我在博客上关于语言的讨论比较多,出于应景,也打算将Anders的演讲完整地听写出来。在上一部分中,Anders阐述了他眼中声明式编程的理念及DSL,并演示C#中一种内部DSL的形式:LINQ。在这一部分中,Anders谈及了声明式编程的另一个重要组成部分:函数式编程,并使用.NET平台上的函数式编程语言F#进行了演示。 阅读全文

一系列技术视频:MIT 6.00,Channel 9 E2E,FP Foundamentals

2009-11-25 02:12 by 老赵, 6152 visits
摘要:最近看一些技术视频上瘾,每天都要看一两个才满足,有时还会整理整理总结总结。视频的来源主要是Channel 9等外国网站,它们往往必须下载到本地才能观看,代价太高。在线看的也不是没有,不过要么就在Youtube等国内无法访问的站点上,或者就因为国内没有CDN导致播放不畅。因此,我正在把一些视频上传到号称国内第一视频站的优酷上,这样便可以比较方便的播放,甚至可以拖拖看看。目前我准备了三个系列,并且还在不断地进行搬运和整理工作。 阅读全文

趣味编程:从字符串中提取信息(参考答案 - 下)

2009-10-21 17:04 by 老赵, 15854 visits
摘要:昨天我们观察了如何使用基于状态机的顺序解析方式来提取字符串中的信息,不过由于winter-cn的做法和我原始的想法不谋而合,但实现的更为清晰,因此我在不献丑的同时,又设法使用另外一种方式来解决这个问题。后来又看到许多朋友给出了各种各样的做法,有普通拆分的方式,有利用正则表达式的做法。于是最后,我“不得不”使用一种特别的方式:F#来编写这么一段解析逻辑。从中我们也可以看到F#在做一些解析工作时的方便之处,在今后我还会谈一下它对我编写C#代码时的启发。 阅读全文

趣味编程:Functional Reactive Programming(参考答案)

2009-09-23 02:45 by 老赵, 11284 visits
摘要:初见Functinal Reactive Programming时,它的编程方式让我大开了眼界,居然可以用这种方式来操作和控制事件。虽然从技术角度来说,要实现这种方式并不是非常困难,甚至颇为有趣。因此我把它当作一次“趣味编程”。不过,这次的结果似乎让我对API设计有了一些新的体会,我打算明天再来总结一下。今天,我们先关注原题的解决方式。 阅读全文

趣味编程:Functional Reactive Programming

2009-09-10 04:26 by 老赵, 11587 visits
摘要:基于事件的编程再常见不过了,尤其是在和UI相关的WinForm,WPF,Silverlight开发方面。把事件作为一等公民看待之后,我们可以实现一些较为“特别”的编程模型,例如Functional Reactive Programming。这是一种较为优雅的基于事件的处理方式,适合一些如交互式动画,自动控制方面的工作。即使平时不太常见,我想作为一个“尝试”或“练习”也是非常合适的。那么我们就学习F#的类库,为C#也设计一套这样的功能吧。 阅读全文

趣味编程:函数式链表的快速排序(参考答案)

2009-09-02 02:58 by 老赵, 4280 visits
摘要:之前我提出了一个“趣味编程”,模仿Haskell的方式对一个链表进行快速排序。在那篇文章中我解释了Haskell列表的结构,并给出了ImmutableList的基础实现。快速排序的例子很多,多做也没有意思。这题虽然打着“快速排序”的旗帜,但事实上这里的关键在于实现ImmutableList数据结构的相关操作——否则为什么叫“函数式链表”的快速排序呢?。 阅读全文

趣味编程:函数式链表的快速排序

2009-08-27 09:50 by 老赵, 5735 visits
摘要:前一段时间有朋友问我,Haskell快速排序的代码,是否可以转化成C#中等价的Lambda表达式实现。我当时回答,C#中缺少一些基础的数据结构,因此不行。经过补充之后,就没有任何问题了。后来,我觉得这个问题挺有意思,难度适中,也挺考察“基础编程”能力的,于是就自己写了一个。如果您感兴趣的话,也不妨一试。 阅读全文
1
使用Live Messenger联系我