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

我的问题是:

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

请举例说明。


当前回答

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

其他回答

在大多数情况下:函数返回一个值,而过程不返回。两者都是组合在一起做相同事情的代码片段。

在函数式编程上下文中(所有函数都返回值),函数是一个抽象对象:

f(x)=(1+x)
g(x)=.5*(2+x/2)

这里,f和g是同一个函数,但是过程不同。

过程和函数都是子例程,它们之间的唯一区别是过程返回多个(或至少可以执行)值,而函数只能返回一个值(这就是为什么在数学中使用函数表示法,因为在给定的时间通常只找到一个值),尽管一些编程语言不遵循这些规则,这是它们的真正定义

在С#/Java中,函数是返回特定值的代码块,而过程是返回void(什么都没有)的代码块。在c# /Java中,函数和过程通常都被称为方法。

    //This is a function
    public DateTime GetCurrentDate()
    {
        return DateTime.Now.Date;
    }

    //This is a procedure(always return void)
    public void LogMessage()
    {
        Console.WriteLine("Just an example message.");
    }

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

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

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

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

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

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

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

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

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

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