functional-programming - 自动机理论和函数式编程

标签 functional-programming finite-automata imperative-programming

我最近开始学习函数式编程并开始使用 Haskell。函数式范式与其他范式的根本区别在于,我们不维护状态,也没有命令式范式中的计算。命令式编程背后的基本理论是自动机理论,自动机理论是计算机的基础。

话虽如此,我看不出自动机理论和函数式编程之间有任何关系。那么函数式编程是否彻底改变了编程的基础?

最佳答案

大约在图灵机开发的同时(我只是猜测您指的是 TM,当您说自动机理论是计算机的基础)时,还提出了 lambda 演算作为计算模型(好吧,不完全是计算机,但很接近)。事实证明,这两个概念是等效的,即任何可以在 TM 上“实现”的东西也可以通过 lambda 项“实现”,反之亦然。此外,函数式编程或多或少是(类型化)lambda 演算的实现。所以我想这只是看待同一件事的两种不同方式。

关于functional-programming - 自动机理论和函数式编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282308/

相关文章:

performance - 编译器优化的函数式代码比命令式代码执行得更好的示例

c# - 函数的功能在一个方向上起作用,而不是在另一个方向上起作用

performance - 如何在 Haskell 中编写高效的动态规划算法?

concatenation - 常规语言和串联

regex - 可以使用正则表达式来匹配嵌套模式吗?

coq - 定义有限自动机 Coq

http - testng - 登录后的 HTTP REST 测试

Javascript:为什么访问闭包变量可能很慢

java - 看起来 "imperative"支持响应式(Reactive)代码的代码是否常见?

scala - 如何在 Scala 中将命令式双 for 循环转换为函数式风格而不返回?