函数式编程的另类指南(1)

By | September 8, 2013

The following part is not maintained anymore. Please go to 函数式程序设计的另类指南 for the whole translation.

以下内容不再更新,浏览全部翻译,请访问 函数式程序设计的另类指南


原文链接:Functional Programming For The Rest of Us
原文作者:Vyacheslav Akhmechet

简介

程序员拖沓成性,每天到了办公室以后,泡泡咖啡、查查邮箱、读读RSS上的回复,看看新闻,到技术站点查阅一下最新的文章,然后在编程论坛的相关版面浏览公共讨论区,并一次次地刷新以免漏掉任何一条留言。接着是午饭,回来后盯着IDE没几分钟,就再次检查邮箱,冲一杯新的咖啡。最后在不知不觉中,结束了一天。

但是每隔一段时间总会蹦出一些很有挑战性的文章。如果你每天上的网站都很对路的话,那么每隔几天都会发现这样的文章——你很难快速通读它们,于是将之束之高阁,直到有一天你突然发现自己已经有了一个长长的链接列表和一个堆满了PDF文件的目录。这时你幻想到一个人迹罕至的森林木屋,苦读一年以学会这些技术。当然,如果每天清晨,当你沿着林中小溪散步的时候,会有人帮你带饭、清理垃圾就更好了。

我不知道你的列表是什么样的,但我的列表却包含了一大堆关于函数式编程的文章。这些文章都很难读懂。它们用枯燥的学院派语言写成,即使“在华尔街行业浸淫十年的专家”也不能理解函数式编程都在探讨些什么。如果你去问花旗集团或德意志银行的项目经理,为什么选择了JMS 而不是Erlang,他们可能会说:不能在产业级的应用中使用学院派语言。问题是,一些最为复杂、有着最严格需求的系统却是用函数式编程元素写成的。所以,有些说法不能让人信服。

的确,有些关于函数式编程的文章和论文很难理解,但它们原来并不是这么晦涩。产生隔阂的原因完全是历史性的。函数式编程的概念并不难理解。本文就是“简易的函数式编程导论”,是一座沟通命令式(imperative)思维模式和函数式编程的桥梁。去取杯咖啡回来继续读下去吧。可能你的同事很快就会开始取笑你对函数式编程发表的观点了。

那么什么是函数式编程呢?它是怎么产生的?它可以被驾驭吗?如果它真如其倡导者所言那么有用,那么为什么没有在行业中得到更广泛的使用呢?为什么好像只有那些博士才使用它?最重要的是,为什么它就TMD 这么难学?Closure、continuation、currying、lazy evaluation、no side effects business究竟是些什么东西?一个项目如果没有大学参与,能不能使用函数式编程?为什么它看上去那么不友好、不亲切?我们马上会解答这些疑问。首先让我来解释实际应用和学术文章之间,有着产生巨大隔阂的原因。其实答案简单得就像在公园散一次步。

Leave a Reply

Your email address will not be published. Required fields are marked *