开始学习函数式编程后对编程的一些新感受
我们绝大多数程序员都是用命令式编程,因为学校教的编程就是命令式的,什么C、Java等等(当然他们也可以用函数式编程)。函数式编程和命令式编程不是一个相对应层次的概念。理论上, 函数式编程 的理论基础是Lambda演算,指令式编程基于图灵机。从程序员角度来看,函数式编程不支持赋值操作,一个函数的执行只会返回一个值,不会有任何副作用,所以看上去,一个函数就是一个大的表达式。 这里不再深入去谈函数式编程,更多可以看看前面提到的那个专题。 1. 编程到底是什么? 编程(程序设计)实际上是一个对现实世界中的事物抽象,并由计算机语言实现的过程。核心的步骤就包含三个:理解、抽象、实现。 不同的理解思路,会导致完全不同的抽象结果;不同的抽象结果就会提供各不同的理解。最后根据理解和抽象,由特定的语言完成时间,但其结果要想完全理解还需要前两个步骤支撑。 有点像建筑中的“房子是什么,房地产设计,盖房子”。 2. 编程的发展过程到底有哪些? 程序设计的历史,按照我的理解大致的几个主要阶段: 计算机程序设计历史前阶段;主要是纸带、存储器等原始方式。 计算机语言初级阶段;主要以汇编语言为主,面向的主要内容是“ 数据存储+指令集”; 计算机广泛工业语言设计阶段;主要以C语言为主的大面积应用,此时由C语言更面向人易懂的方向发展。并且操作系统,编译器,数据库软件开始发展;面向的主要内容是“ 程序=算法+数据结构 ”