突然想到Functional Programming

原创 2004年07月03日 03:04:00
Philip Wadler 在ACM SIGPLAN Notices, Aug 1998上的文章 
"Why no one uses functional languages" 讨论了FP的障碍,主要不是技术上的, 
而是商业上的和政治上(politics in its general meaning)。比如很多程序员都 
只受过Imperaive Programming的训练,还没有人投资去搞出足够成熟的库和开发 
环境(特别是debugger和profiler),和已有的语言的接口支持不够等。 
但通过调查长期使用functinal language和imperative language的人发现, 
FP的开发周期,不管是coding, debugging, 还是maintainance,都更加容易。 
从理论上将,如果一个程序员不用担心side effects, misordered updates,  
和dangling or uninitialized references, 而且能从小到大逐步地构造复杂的 
数据结构(FL的长项的说),那他的开发速度能大大加快。Philip Wadler 
在ACM SIGPLAN Notices, Feb 1998的"An Angry half-dozen"里有具体的调查数据和 
讨论。不知道微是不是也是出于相同的考虑,决定开发F#,来弥补FP商业开发环境的不足 
。 
 
呵呵,顺便说说Logic Programming,也有人说LP的理念更加引人,因为程序员只需制订 
对未知量的逻辑规则,使得编成大大简化,而且使人们可以把编程和Specification及 
Formal Specification Verification相对容易地连接起来,保证了大型项目从一开始就 
是正确的(项目大了,保证Specification consistency很难的说, 所以很多人都在搞 
什么auto verifier)。确实也有大型商业系统用LP开发,据说效果不错(很久前读的文 
章,reference忘了)。但偶个人的经验是,LP用起来不爽。Horn Clause不能实现所有 
的First Order Predicate Calculus,比如A=>P1|P2|P3,相同语意的否定(不是Prolog 
里那个"not"的说)等。所以偶用Prolog时总得用Prolog特有的方式思考,而不是用熟知的 
那套逻辑思考,有束手束脚的感觉。还有就是如果不相当熟悉各种所谓的Execution  
Order的话,写出的代码会非常非常慢(还有多少人能玩儿转cut, fail, repeat, 
 retract什么的? :-D)当然也可以说偶的LP学得不好,哪位老大指点一二? 

Functional Programming简介(十分钟版)

今天继续试验十分钟可以干什么,选取了wiki上对Functional Programming的定义,看看十分钟可以读多少(在能够理解内容的前提下),因为这篇wiki前半部分都是介绍性的,没有太多复杂的...
  • jinxfei
  • jinxfei
  • 2010年01月19日 13:32
  • 8773

重温“卡马克谈functional programming in c++”

正在准备些关于overwatch的gameplay architecture的blog,里面的观点也让我想起12年时候看的carmack谈的functional programming in c++这...
  • ccanan
  • ccanan
  • 2017年06月26日 00:44
  • 1043

Why Functional Programming Matters 函数式程序设计为什么至关重要

作者: John Hughes 原文地址:http://www.md.chalmers.se/~rjmh/Papers/whyfp.html 此论文作于1984年,作为查麦兹大学的备忘录流传了多...
  • whf727
  • whf727
  • 2014年12月15日 10:50
  • 1444

Coursera公开课Functional Programming Principles in Scala习题解答:Week 1

引言 工作之余参加了Coursera的公开课Functional Programming Principles in Scala,这个课是第三次开讲了,讲师仍然是Scala的祖师爷Martin Ode...
  • doggie_wangtao
  • doggie_wangtao
  • 2014年05月08日 01:07
  • 4395

[翻译]Why Functional Programming Matters

Why Functional Programming Matters函数式程序设计为什么至关重要作者: John Hughes翻译: CloudiDust [http://blog.csdn.net/...
  • DDWN
  • DDWN
  • 2006年07月27日 09:46
  • 8785

卡马克谈Functional programming in C++

http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/这个在《程序员》杂志上有译文,也很不错。functional ...
  • ccanan
  • ccanan
  • 2012年07月07日 22:57
  • 4180

一个人不孤单,想一个人才孤单

“一个人不孤单,想一个人才孤单”曾经听到一个女生的声音这样唱着,过了20多个年头的我,也有很多的感触,而当昨天我突然想到这句话的时候我才知道这首歌曲的魅力。于是我马上找到了这首歌曲,找到了歌词:我一个...
  • capsicum29
  • capsicum29
  • 2005年05月16日 10:29
  • 1193

HDU ——1201 18岁生日

18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su...
  • wuxiushu
  • wuxiushu
  • 2015年10月27日 19:49
  • 262

functional programming

functional programming Use functional programming techniques to write elegant JavaScript F...
  • uoyevoli
  • uoyevoli
  • 2006年06月15日 13:14
  • 1045

Functional Programming

https://github.com/justinyhuang/Functional-Programming-For-The-Rest-of-Us-Cn/blob/master/FunctionalP...
  • lantianjialiang
  • lantianjialiang
  • 2014年01月06日 16:30
  • 529
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:突然想到Functional Programming
举报原因:
原因补充:

(最多只允许输入30个字)