当一种语言有资格作为一种功能语言?

时间:2016-03-03 04:30:32

标签: functional-programming programming-languages

语言应具备哪些特性才能被认定为功能语言?我们可以说语言XYZ支持功能范式吗?

1 个答案:

答案 0 :(得分:2)

  

语言应具备哪些特性才能被认定为功能语言?当我们可以说XYZ语言支持功能范式时?

这是两个不同的问题。我说"支持功能范例"的意思是:

  • 您可以使用与其他类型相同的函数(在局部变量,参数中使用它们......)
  • 您可以内联定义匿名函数(a.k.a. lambda函数)
  • 匿名函数可以访问在其环境中声明的变量(这称为闭包)

根据这个定义,几乎任何现代主流编程语言都支持功能范例(C除外)。

要被归类为"功能语言",语言需要关注功能范式作为其主要或唯一的范例,包括不变性和关注纯(无副作用)功能。除此之外,这通常意味着:

  • 支持声明像歧视联盟这样的不可变类型
  • 支持模式匹配
  • 函数体由表达式而非语句组成