一般来说,我们都听说过编程语言中的函数或过程。然而,我发现我几乎可以互换地使用这些术语(这可能是非常错误的)。

我的问题是:

它们的功能、目的和用途有什么不同?

请举例说明。


当前回答

函数返回值,过程只执行命令。

函数的名称来源于数学。它用于根据输入计算一个值。

程序是一组可以按顺序执行的命令。

在大多数编程语言中,甚至函数也可以有一组命令。因此,区别只在于返回值部分。

但是如果你想让函数保持简洁(看看函数式语言就知道了),你需要确保函数没有副作用。

其他回答

这取决于上下文。

在类pascal语言中,函数和过程是不同的实体,不同之处在于它们是否返回值。他们的行为不同。语言语法(例如;过程调用表单语句;你不能在表达式中使用过程调用,而函数调用不构成语句,你必须在其他语句中使用它们)。因此,pascal培养的程序员会对这两者进行区分。

在类c语言和许多其他当代语言中,这种区别已经不复存在;在静态类型语言中,过程只是带有有趣返回类型的函数。这可能就是为什么它们可以互换使用的原因。

在函数式语言中,通常没有过程这样的东西——所有东西都是函数。

更严格地说,如果x = y,函数f遵守f(x) = f(y)的性质,即每次使用相同的参数调用它时,它都会计算相同的结果(因此它不会改变系统的状态)。

因此,rand()或print("Hello")等不是函数,而是过程。 而sqrt(2.0)应该是一个函数:无论调用多少次,都没有可观察到的效果或状态变化,它总是返回1.41或其他。

函数返回值,过程只执行命令。

函数的名称来源于数学。它用于根据输入计算一个值。

过程是一组可以按顺序执行的命令。

在大多数编程语言中,甚至函数也可以有一组命令。因此,差值只是返回一个值。

但是如果你想让函数保持简洁(看看函数式语言就知道了),你需要确保函数没有副作用。

程序: 1.过程是定义参数化计算的语句的集合。 2.过程不能返回值。

3.不能从函数调用过程。

功能 1.函数在结构上类似于过程,但在语义上以数学函数为模型。 2.它可以返回值 3.函数可以从过程中调用。

一般来说,程序是一系列指令。 函数可以是相同的,但它通常返回一个结果。