标签:函数式 functional programming scala
从语言范式说到函数式范式
范式(Paradigm)是指用来区分一套相关的概念或思维模式的科学原则。目前主要存在如下三种程序范式:
Imperative programming
Functional programming
Logic programming
我们常说道的Object-orentied programming可以看成是以上三种范式的一种正交的范式。
我们先看Imperative programming的基本特征,如下:
可被修改的变量(Mutable Variable)
使用赋值的形式(Using assignment)
使用控制结构,例如, if-else, for loop, break, continue
Von Neumann机器的顺序指令方式可以很好地描述Imperative programming.
Imperative pramgramming跟Von Neumann机器的对应关系如下:
可变变量 相对于 内存单元
变量引用 相对于 装载指令
变量赋值 相对于 存储指令
控制结构 相对于 跳转指令
Imperative programming是逐条,逐句进行编程的的范式。我们当然有更高级抽象的需求。我们需要集合,多项式,字符串,文档等等。理想的情况是我们有针对这些更高级抽象的范式。
这种更高抽象的理论我们希望它具有如下特性:
一些数据类型
基于这些类型的操作
描述数值跟操作直接的规则
这里很重要一定就是 不要包含状态的改变
这里无状态变化我们从多项式的理论中学习
待续。。。。。
本文出自 “洪流的博客” 博客,请务必保留此出处http://simonwzing.blog.51cto.com/3896700/1654643
标签:函数式 functional programming scala
原文地址:http://simonwzing.blog.51cto.com/3896700/1654643