gpt4 book ai didi

c - 数学中的函数和编程中的函数有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 16:25:14 25 4
gpt4 key购买 nike

数学中的函数和编程中的函数有什么区别?

最佳答案

在函数式编程中你有 Referential Transparency ,这意味着您可以在不改变程序的情况下用它的值替换一个函数。 这在数学中也是正确,但在命令式语言中并不总是正确

数学函数定义为:将元素从一个集合 (A) 映射到另一个集合 (B) 的关系,将第一个集合的每个元素映射到另一个集合中的一个元素。在 C 中(与其他编程语言一样)也是如此,您有输入集和输出集(几乎总是只有一个)。

那么,主要区别在于,如果您在数学中调用 f(x),您将总是得到相同的答案,但如果您调用 f'(x) 在 C 中,答案可能不同 - 相同的参数并不总是返回相同的输出。非函数式语言中的函数可能不仅仅取决于您提供给它们的参数,还取决于程序中的其他内容(封闭范围、全局变量、内置函数、状态(如果您使用的是面向对象)。

数学和 C 函数之间的另一个区别是,在数学中你不能创建一个从非空集到空集的函数(在 C 中这将是:你不需要总是返回一些东西与你的功能)。此外,并非所有功能都是 computable (我不知道数学中是否有类似的东西..)。您没有无限集的函数(您的内存有限,因此可能的输入参数集必须是有限的),但在数学中,您可以为无限集定义一个函数(如 f: N -> N)和对于uncountable集合(如 f: R -> R)(在 C 语言中你有 float ,但它们只代表有限实数的缩减集)。

总结:

在 C 中,您并不总是具有引用透明性。您的函数可能不会总是为相同的输入参数提供相同的输出。您可以拥有为无限输入集定义的数学函数,但在 C 函数中,您的输入是有限的。在 C 函数中,您可以拥有不返回任何内容的函数,但在数学中您不能拥有(如果您的函数具有非空输入集,则必须将每个元素映射到另一组中的一个元素)。

关于c - 数学中的函数和编程中的函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3605383/

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