【问题标题】:When a language qualifies as a functional language? [closed]当一种语言有资格作为功能语言? [关闭]
【发布时间】:2016-03-03 22:16:40
【问题描述】:

一种语言应该具备哪些特征才能成为功能性语言?我们什么时候可以说一种语言XYZ 支持函数式范式?

【问题讨论】:

    标签: functional-programming programming-languages


    【解决方案1】:

    一种语言应该具备哪些特征才能成为功能性语言?我们什么时候可以说一种语言 XYZ 支持函数范式?

    这是两个不同的问题。我会说“支持功能范式”的意思是:

    • 您可以像使用其他类型一样使用函数(在局部变量、参数中使用它们……)
    • 您可以内联定义匿名函数(也称为 lambda 函数)
    • 匿名函数可以访问在其环境中声明的变量(这称为闭包)

    根据这个定义,几乎所有现代主流编程语言都支持函数式范式(C 除外)。

    要归类为“函数式语言”,语言需要将函数式范式作为其主要或唯一的范式,包括不变性和专注于纯(无副作用)函数。除了上述之外,这通常意味着:

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

    【讨论】:

    • 这里匿名函数有什么意义?
    • @vivek 我不太明白你在问什么。你是在问为什么函数必须是匿名的,当你可以命名闭包时?
    • 你的解释很好,但假设我不知道闭包,那么匿名函数如何帮助语言支持函数式编程。
    猜你喜欢
    • 2010-10-07
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多