我已经阅读了有关过程编程和函数式编程的 Wikipedia 文章,但我仍然有些困惑。有人能把它归结为核心吗?
函数式语言(理想情况下)允许您编写数学函数,即接受 n 个 参数并返回一个值的函数。如果程序被执行,这个函数会根据需要进行逻辑评估。1
另一方面,过程语言执行一系列 顺序 步骤。(有一种将顺序逻辑转换为函数逻辑的方法,称为连续传递样式。)
因此,纯函数式程序总是为输入产生 相同的值,并且评估的顺序没有明确定义; 这意味着像用户输入或随机值这样的不确定值很难用纯函数式语言建模。
1与此答案中的其他所有内容一样,这是一个概括。此属性在需要计算结果时而不是在调用结果时按顺序评估计算,称为“惰性”。并非所有函数式语言实际上都是普遍惰性的,惰性也不限于函数式编程。相反,这里给出的描述提供了一个“核心框架”来思考不同的编程风格,这些风格不是不同的和相反的类别,而是流动的想法。