Wednesday, November 26, 2014

C++的牛B之处你们都还没体会到

http://www.mitbbs.com/article_t/Programming/31385161.html

发信人: wdong (cybra), 信区: Programming
标  题: C++的牛B之处你们都还没体会到
发信站: BBS 未名空间站 (Wed Nov 26 11:19:38 2014, 美东)

Haskell是纯functional的,但是在写IO代码的时候脱不了imperative的形式(do后面那
串东西形式上是imperative的,事实上运行也是按imperative方式运行的,对do后面那
串东西按monad那三条运算规则进行证明和优化基本上属于扯淡)。

Java, python那些带lambda的只是学了个functional的形式,本质是imperative的。

只有C++真正同时实现了functional和imperative。functional的用模板写,编译时计
算,不带IO,没有side effect。剩下的那部分是imperative的。C++可以写monad,但
是不需要,因为涉及到IO的部分本来就是imperative的,没有必要硬套到functional的
框框下。而且functional和imperative的两部分绝不会混淆,泾渭分明。遗憾的是
C++在可以遇见的将来应该不会加入足够的语法糖使模板编程摆脱原生态FP的状态。
那批committee应该是重实用超过形式的人,又没啥resource,FP那些东西可能都
没机会提上日程。

Scala也实现了functional和imperative以及别的各种东西,但一切都混淆在一起,基
本上是一种混沌的状态。我喜欢scala是因为它基本上实现了语法糖的极至,体现了另
一种彪悍。从古至今应该还没有一种语言里面含有这么多元素的。写scala的时候得抱
一种不求甚解的态度,写出来对了就好。



No comments:

Post a Comment