首先我承认我不是函数式语言高手,甚至谈不上高手。但是我有一点想问那些比较精通函数式语言的人,在提供了相同功能的情况下,函数式语言比起命令式语言有什么优点?
1、更有效率?
这个肯定不好说
2、更符合问题模型?
这个也未必吧。表的递规和函数表达之类的东西,用函数式语言比较“直观”。甚至有的时候看着Haskell的代码会有看见了课本的错觉。
3、更能帮助你进行模块化?
我不觉得我看过的函数式语言中提出了什么超越了主流OO语言的模块化功能。这个需要大家多多指导。
4、更好上手?
至少从人力资源的角度,用haskell用O'caml肯定要进行人员培训的(国内),而用C多少大家都会一点。
5、相关支持完善?
不少paper是研究语言和编译原理的,研究想管调试,错误处理等周边支持的paper是很少的。学院派的东西就是这样的,无法支持工业强度的应用。虽然erlang和lisp几个是例外,但是既便是这些佼佼者,我看和java和C#还是没得比的。
6、我承认一点是对个人来说,学习函数式语言来开拓思维是非常好的,可以让你看看窗外的世界。但是我并没有看到用函数式语言来写产品代码有什么好处。至少维护就是一个麻烦。而且在我看来,除了lisp这样的语言,很多函数式语言就是欧洲一小撮学院一小群人在玩。我们能在其中看到一些不同的思想,但是仅此而已了。
posted on 2004-06-04 17:09  taowen  阅读(2023)  评论(3编辑  收藏  举报