gpt4 book ai didi

functional-programming - "Functional programming"有明确的含义,但是 "functional language"吗?

转载 作者:行者123 更新时间:2023-12-03 03:05:36 30 4
gpt4 key购买 nike

我非常清楚函数式编程技术和命令式编程技术之间的区别。但是现在有一种普遍的趋势是谈论“函数式语言”,这确实让我感到困惑。

当然,像 Haskell 这样的一些语言比 C 等其他语言更欢迎函数式编程。但即使是前者也可以进行 I/O(它只是将其保留在贫民窟中)。你可以用 C 语言编写函数式程序(这简直是太难了)。所以也许这只是程度问题。

尽管如此,即使从程度来看,当有人将Scheme称为“函数式语言”时,这意味着什么?我看到的大多数Scheme代码都是命令式的。如果您愿意的话,Scheme 是否可以让您轻松地以函数式风格进行编写? Lua 和 Python 也是如此。它们也是“函数式语言”吗?

我(真的)不想成为一名语言警察。如果这只是一种宽松的谈话方式,那也没关系。我只是想弄清楚它是否确实有一些我没有看到的明确含义(即使是程度问题)。

最佳答案

对于以学习编程语言为生的人来说,“函数式编程语言”是一个约束力相当弱的术语。人们一致认为:

  • 任何自称函数式的语言都必​​须支持 first-class ,具有词法作用域规则的嵌套函数

少数人还保留术语“功能语言”来表示以下语言:

如 Agda、Clean、Coq 和 Haskell 等语言。

除此之外,什么被认为是函数式编程语言通常取决于意图,即设计者是否希望它被称为“函数式”。

Perl 和 Smalltalk 是支持一流函数的语言示例,但其设计者并不将它们称为函数式。 Objective Caml 是一种被称为函数式语言的示例,尽管它具有带有继承和一切的完整对象系统。

被称为“函数式”的语言往往具有如下功能(摘自 Defining point of functional programming ):

特定的编程语言越具有定制的语法和结构,以使上面列出的各种编程功能易于/轻松地表达和实现,就越有可能有人将其标记为“函数式语言”。

关于functional-programming - "Functional programming"有明确的含义,但是 "functional language"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291742/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com