Haskell 中的术语 "function application"
The term "function application" in Haskell
我目前正在学习 Haskell,遇到过几次 "function application" 这个词,但没有真正理解它的意思。
有人可以尝试解释 Haskell 中术语的含义,或者最终解释一下一般情况吗?
"Function application"这里的意思和"passing an argument to the function"差不多。例如,如果您有一个函数 f :: Int -> Int
和一个 x :: Int
,那么 f x :: Int
是一个表达式,其中表达式 x
是 "applied" 作为 [=14 的参数=] *.
Haskell 中没有用于执行函数应用的真正内置运算符(除了将函数与其参数分隔的空格之外)。 Prelude
导出 ($)
函数,它(除了一些不寻常的奇怪之处)只是函数应用程序:即 ($) f x
与 f x
相同(这主要用于某些句法技巧,虽然它偶尔也有其他用途)
*:有人向我指出,人们通常认为这是将函数应用于参数而不是将参数应用于函数,我认为这对理解的含义没有太大影响虽然在这里申请
"Applying" 一个函数与调用它是一样的,通过提供一个参数。
-- A function
f :: a -> a
f x = x
-- Application of f
f 100
另一个例子:
data C = A Int Int | B String
f1 :: Int -> Int -> C
f1 = A
f2 :: Int -> C
f2 = A 4
f3 = (4,)
f4 = (,5)
f5 = (,)
我让你玩上次的类型
所以,A
和B
也是函数,B
等待一个String
,returns一个新类型,C
。与 (,)
元组构造函数的概念相同。
主要是标准的英语用法。
"Function application"只是函数的具体应用。 "Application" 在此上下文中只是对应于动词 "apply" 的名词;这意味着应用某物的行为或过程。
到"apply something"表示使用。 To "apply A to B" 意味着使用 A 对 B 做某事。因此 "apply a function" 意味着 use/call 某事上的功能。在 Haskell 中,当我编写表达式 f x
时,我将 f
应用于 x
。
因此"function application"只是应用函数的一般概念的术语。在特定的上下文中,它可能被用来谈论:
- 一般应用函数的广义概念
- 用于在编程语言中表达 "apply this function to that argument" 的语法(例如 "function application is by adjacency in Haskell",或 "function application in Python uses C-like syntax")
- 应用函数的特定代码位
- 在 Haskell 中
$
通常被解释为 "the function application operator",因为 f $ x = f x
或多或少是它的定义
或任何相关内容。
我目前正在学习 Haskell,遇到过几次 "function application" 这个词,但没有真正理解它的意思。
有人可以尝试解释 Haskell 中术语的含义,或者最终解释一下一般情况吗?
"Function application"这里的意思和"passing an argument to the function"差不多。例如,如果您有一个函数 f :: Int -> Int
和一个 x :: Int
,那么 f x :: Int
是一个表达式,其中表达式 x
是 "applied" 作为 [=14 的参数=] *.
Haskell 中没有用于执行函数应用的真正内置运算符(除了将函数与其参数分隔的空格之外)。 Prelude
导出 ($)
函数,它(除了一些不寻常的奇怪之处)只是函数应用程序:即 ($) f x
与 f x
相同(这主要用于某些句法技巧,虽然它偶尔也有其他用途)
*:有人向我指出,人们通常认为这是将函数应用于参数而不是将参数应用于函数,我认为这对理解的含义没有太大影响虽然在这里申请
"Applying" 一个函数与调用它是一样的,通过提供一个参数。
-- A function
f :: a -> a
f x = x
-- Application of f
f 100
另一个例子:
data C = A Int Int | B String
f1 :: Int -> Int -> C
f1 = A
f2 :: Int -> C
f2 = A 4
f3 = (4,)
f4 = (,5)
f5 = (,)
我让你玩上次的类型
所以,A
和B
也是函数,B
等待一个String
,returns一个新类型,C
。与 (,)
元组构造函数的概念相同。
主要是标准的英语用法。
"Function application"只是函数的具体应用。 "Application" 在此上下文中只是对应于动词 "apply" 的名词;这意味着应用某物的行为或过程。
到"apply something"表示使用。 To "apply A to B" 意味着使用 A 对 B 做某事。因此 "apply a function" 意味着 use/call 某事上的功能。在 Haskell 中,当我编写表达式 f x
时,我将 f
应用于 x
。
因此"function application"只是应用函数的一般概念的术语。在特定的上下文中,它可能被用来谈论:
- 一般应用函数的广义概念
- 用于在编程语言中表达 "apply this function to that argument" 的语法(例如 "function application is by adjacency in Haskell",或 "function application in Python uses C-like syntax")
- 应用函数的特定代码位
- 在 Haskell 中
$
通常被解释为 "the function application operator",因为f $ x = f x
或多或少是它的定义
或任何相关内容。