1.函数式和命令式编程的差别 -函数式编程 ·首先说一下编程语言的历程:过程式->函数式->面向对象 过程式是指类似于C语言的面向过程的语言; 面向对象编程语言则是指类似于Java一样的编程语言,“万物皆对象”即是其核心思想; ·那么函数式编程又是什么呢? 将业务逻辑细化,抽象,封装成具有一个个独立功能的函数,然后借助于语言自带的高阶函数api,将独立功能的函数串起来(相互调用),从而实现想要的业务逻辑;在函数式编程中,函数不仅可以直接调用,还能够当做“参数”传到其他函数中调用,在此基础上,我们不仅想传入函数,还想要传入值进去,我们把这些函数和值做进一步的封装,那么对象就出来了:我们可以把函数当做是行为(就相当于Java语言中类中的方法,这些方法代表着一个个的行为操作),值当做属性(Java类中的属性)。 ·面向过程或者面向对象编程大家或多或少都有所接触过,那么在编程语言演变的过程中,函数式编程相较于其他两种类型的编程究竟有什么好处呢? 其实,个人觉得这些语言是没有可比性的,他们在不同的场景中可能相较于其他两种编程类型的语言来说要更优秀,更方便,因此,谁优谁劣,要看具体的应用场景,比如写GUI你会觉得oop会让你效率更高,写interpreter时,functional programming会让你的心情更好,因此,这里要强调的是具体问题具体分析,不能单纯的说某一类型的编程语言相较于其他编程语言会更差或更好。