Joh*_*fer 20
我想说纯函数式编程的定义点是所有的计算都是在没有副作用的函数中完成的.也就是说,函数接受输入和返回值,但不改变任何隐藏状态.在这个范例中,函数更接近地模拟他们的数学表兄弟.
当我开始使用Erlang这种具有一次写入堆栈的语言时,这对我来说是固执的.但是,应该澄清编程范例与编程语言之间存在差异.通常被称为功能的语言提供了许多鼓励或强制执行功能范例的功能(例如,Erlang具有一次写入堆栈,高阶函数,闭包等).然而,函数式编程范例可以应用于多种语言(具有不同程度的痛苦).
Chr*_*way 12
到目前为止,许多定义都强调了纯度,但是有许多语言被认为是功能性的,并不是纯粹的(例如,ML,Scheme).我认为使语言"功能化"的关键属性是:
鉴于这两个属性,您自然会得到我们认为具有功能的行为(例如,根据折叠和地图表示计算).消除可变状态是一种使事情更具功能性的方法.
来自维基百科:
在计算机科学中,函数式编程是一种编程范式,它将计算视为数学函数的评估,并避免状态和可变数据.它强调功能的应用,与强调状态变化的命令式编程风格形成对比.
使用功能方法可带来以下好处:
还有更多的细节一个伟大的文章在这里.
能够枚举特征比尝试定义术语本身更有用,因为人们将在连续统一体中使用多种含义的各种语境中的"函数式编程"一词,而单个特征具有单独更清晰的定义,更普遍的同意.
以下是我想到的功能.大多数人使用术语"函数式编程"来指代这些特征的某些子集(最常见/最重要的是"纯度"和"高阶函数").
FP功能:
您使用上面列表中的功能越多,就越有可能标记您正在进行的功能"功能编程"(前两个功能 - 纯度和高阶功能 - 可能值得获得额外奖励积分.你的"FP得分").
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |