摘要: 在Haskell的世界中,没有变量赋值,流程跳转,如果要实现一些简单的功能,比如求一个数组中的最大值,都需要借助递归实现。 递归函数的定义: A function may be partly defined in terms of itself. 即如果一个函数的定义中使用了其自身,这个函数就叫做递归函数。 阅读全文
posted @ 2013-03-23 20:42 黄博文 阅读(2230) 评论(0) 推荐(1) 编辑
摘要: 如果你是使用面向对像语言进行编程的程序员,那么你应该去了解掌握一门动态语言。而动态语言的魔力之一就是函数式编程。而要学习了解函数式编程,那么haskell是一个不错的选择。 Haskell是是一门纯函数式编程语言(purely functional programming language)。在其世界中函数是第一等对象。并且在haskell中没有赋值,例如你指派a的值为5,然后你无法再给a分配其它的值。所以你不能像命令式语言那样命令电脑“要做什么”,而是通过函数来描述出问题“是什么”。 作为一个纯的函数式编程语言,它支持惰性求值、模式匹配、列表解析、类型类、类型多态…… 别着急,让我们慢慢来解开函数式编程的面纱。 阅读全文
posted @ 2013-03-23 10:59 黄博文 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 《JavaScript语言精粹》这本书句句是精华。如果你想只读一本书了解JavaScript,这本是你的不二选择。这么薄的一本书讲JavaScript的特点介绍的非常清楚,是我对JavaScript的认识更加的深入。以前总觉得函数式编程很难理解,但是看了这本书以后我觉得对其有了一个新的认识。严格意义上说JavaScript并不仅仅是一门函数式编程语言,书中有一句话对它的特性做了一个精彩的描述:JavaScript的许多特性都借鉴自其他语言。语法借鉴自java,函数借鉴自Scheme,原型继承借鉴自Self,而JavaScript的正则表达式特性则借鉴自Perl。JavaScript的简单类型有 阅读全文
posted @ 2013-03-23 01:22 黄博文 阅读(489) 评论(1) 推荐(0) 编辑
摘要: 在今年的的ThoughtWorks China away day上,我见到了这本书的作者neal ford, 我们还有过简单的交流,并一起去爬了长城。惭愧的是当时我并没有读过他写的这本书。直到今天我拿到了这本书,并花了大半天的时间通读了一遍。看完以后,我觉得这本书真是太好了,非常值得一读。但是,我想读这本书的读者,大体会分为两个反应。一种是看了一下前面,觉得没有意思,大概翻了翻,发现作者真是太罗嗦了,就丢到了一边。另一种是爱不释手的从头看到尾,看到有些段落会会心一笑,有些段落则加上重重的标记,并决定马上就要开始实践。如果换做半年前的我,我是第一种反应,而现在,我当然是第二种反应。主要是这半年在 阅读全文
posted @ 2013-03-23 01:20 黄博文 阅读(648) 评论(2) 推荐(0) 编辑