函数应用程序和调用函数之间有什么关系?

时间:2012-02-29 23:59:53

标签: language-agnostic programming-languages

我听到使用的术语“函数应用程序”(主要与Haskell有关),它似乎只是意味着“调用函数”。 wikipedia page基本上称它为调用函数的数学术语:

  

在数学中,函数应用程序是将函数应用于其域中的参数的行为,以便从其范围中获取相应的值。

调用函数和函数应用程序有什么区别?

2 个答案:

答案 0 :(得分:2)

调用函数似乎暗示您正在使用编程语言调用运行时操作,该编程语言将执行抽象以计算函数的结果。当我们想在任何时候谈论...函数应用程序时,函数应用程序似乎更像是一个通用术语,例如:在编译时,语法或数学上。

功能应用程序也可以参考apply。从历史上看,apply是一种高阶函数,采用函数引用,参数列表,其结果应为f(参数列表)。

在Haskell中,函数应用程序最有可能是指通过一个参数来计算函数。在Haskell中,您只需要表示函数应用程序的空格($运算符只会更改优先级/分组,以允许更少的括号;而不是LISP)。将此与我们在基本代数中学习并在非函数式编程中使用的“正常”符号进行对比,其中f(a,b,c)表示应用于参数a,b,c的函数f。我不认为你使用术语“调用函数”,除非你正在处理实际上称为函数的抽象;我甚至不确定Haskell有没有。例如,Haskell可能有一个通过模式匹配来减少函数的抽象......或者在Haskell中使用“调用函数”可能是合理的。

答案 1 :(得分:1)

Barebones解释:

就函数的用途而言,Haskell和其他函数式语言更具抽象性。

在过程语言中,您调用一个函数,该函数是可能会或可能不会对数据进行操作的语句集合。

在函数式语言中,您拥有数据,并对其应用函数以对数据执行某些操作。