Functional programming 当一种语言符合功能语言的条件时?

Functional programming 当一种语言符合功能语言的条件时?,functional-programming,programming-languages,Functional Programming,Programming Languages,作为功能性语言,一种语言应该具备哪些特征?当我们可以说一种语言XYZ支持函数范式时 作为功能性语言,一种语言应该具备哪些特征?当我们可以说语言XYZ支持函数范式时 这是两个不同的问题。我认为“支持功能范式”意味着: 您可以像处理其他类型一样处理函数(在局部变量、参数等中使用它们) 您可以内联定义匿名函数(也称为lambda函数) 匿名函数可以访问在其环境中声明的变量(这称为闭包) 根据这个定义,几乎所有现代主流编程语言都支持函数范式(C除外) 要被归类为“功能性语言”,一种语言需要将功能性范

作为功能性语言,一种语言应该具备哪些特征?当我们可以说一种语言
XYZ
支持函数范式时

作为功能性语言,一种语言应该具备哪些特征?当我们可以说语言XYZ支持函数范式时

这是两个不同的问题。我认为“支持功能范式”意味着:

  • 您可以像处理其他类型一样处理函数(在局部变量、参数等中使用它们)
  • 您可以内联定义匿名函数(也称为lambda函数)
  • 匿名函数可以访问在其环境中声明的变量(这称为闭包)
根据这个定义,几乎所有现代主流编程语言都支持函数范式(C除外)

要被归类为“功能性语言”,一种语言需要将功能性范式作为其主要或唯一的范式,包括不变性和纯(无副作用)功能。除上述情况外,这通常意味着:

  • 支持声明不可变类型,如有区别的联合
  • 支持模式匹配
  • 函数体由表达式而不是语句组成

这里匿名函数的意义是什么?@vivek我不太明白你在问什么。你是在问为什么函数必须是匿名的,而你可以命名闭包?你的解释很好,但是假设我不知道闭包,那么匿名函数如何帮助语言支持函数编程呢。