我真的很难理解 程序上的和 功能性的编程范例之间的区别。
以下是维基百科 函数式程序设计条目的前两段:
在计算机科学中,功能性的 编程是一种编程范型 将计算视为 数学函数的计算 并避免状态和可变数据 强调... 的应用 功能,相对于 命令式编程风格 强调状态的改变。 函数式编程有其根源 在 lambda 微积分中,一个形式系统 在20世纪30年代为了研究 函数定义,函数 应用程序和递归 函数式编程语言可以 be viewed as elaborations on the Lambda 微积分。
实际上,一个 数学函数和概念 用于祈使语气的“函数” 编程就是这么必要 函数会有副作用, changing the value of program state. Because of this they lack referential 透明度,即同一种语言 表达式可以导致不同的 值在不同的时间取决于 正在执行的程序的状态。 相反,在函数代码中, 函数的输出值取决于 只在作为输入的参数上 函数,因此调用一个函数 对象具有相同值的两次
f
argumentx
will produce the same 两次结果都是f(x)
排除 副作用可以让它变得更容易 来理解和预测这种行为 一个程序,这是其中一个关键 发展的动机 函数式程序设计。
在第二段中写道
相反,在函数代码中,函数的输出值只取决于输入到函数中的参数,因此对参数
x
使用相同的值两次调用函数f
将产生相同的结果f(x)
。
程序编程不也是这样吗?
一个人应该在程序性和功能性之间寻找什么突出的地方?