和《Java8实战相比》,很多东西都是重复的。写这篇笔记,一方面是作为回顾总结,另一方面,很多东西这本书换了一个角度去看,对于思考的完整性,依然不可或缺。
哲学上的白马非马其实就是所谓的副作用
其实上一篇的《Java8实战》学习笔记二已经把有些思想上的东西说的很多了,在这就是突然想到一些东西记录一些。
《信息简史》这本书里面说过一个意思“有逻辑的东西一定会有悖论”,程序逻辑一般三种(顺序、条件、循环)。大一开始学程序的时候,就感觉很别扭,想让a等于a+1,自己会先让b=a+1,再a=b,现在想想其实就是心里并没有意识到程序世界里的白马非马问题。a=a+1,一道错误的数学等式,却在程序里司空见惯。命令式编程可能对待它就是个sum指令,但是看成函数来说完全是错误的,a经过了加1映射以后就不可能是等于原来的a了,违反了引用的透明性,有副作用。