这个函数有名字吗
Is there a name for this function
我正在寻找以下函数的名称:
(f, a) => () => f(a)
基本上是一个函数 returns 调用时调用 f
和 a
的函数。
这个函数有通用名称吗?也许它可以用一些 Ramda 魔法来描述?
编辑澄清:
我要找的和Ramda的partial类似,
partial(f, [a])
除了部分更像是:
(f, a) => (b) => f(a, b)
即 partial
中的 b
是不需要的。
我称之为绑定的特例
如果你有两个参数的函数,比如 f(x, y),那么你可以定义 g(y) = f(5, y)。在这种情况下,您将 f 中的参数 x 绑定到固定点 5.
我将其称为具有延迟调用的准备函数。
第一部分接受函数和参数,returns 一个函数而不用参数调用给定的函数。稍后通过显式调用函数来调用它。
这是一个higher-order函数。
一个higher-order函数是一个至少接受一个或多个函数作为输入或returns另一个函数的函数。
这个定义满足代码:
(f, a) => () => f(a)
因为它本质上是一个返回另一个函数的函数。
在JavaScript中,这可能被称为绑定。一般来说,这种类型的组合器可能有一个更具体的名称(这与应用组合器非常相似 -> f => a => f(a)
)。
实施简单:
const bind = (f, a) => () => f(a)
那是 thunk。
从本质上讲,这是一种具体化的计算,您可以根据需要传递和评估。人们可能出于各种原因想要延迟表达式的计算(它可能很昂贵,可能有 time-sensitive 副作用,等等)。
执行 const enThunk = f => a => () => f(a);
可以让您绕过 f(a)
而无需实际评估它,直到稍后的某个时间点。
我正在寻找以下函数的名称:
(f, a) => () => f(a)
基本上是一个函数 returns 调用时调用 f
和 a
的函数。
这个函数有通用名称吗?也许它可以用一些 Ramda 魔法来描述?
编辑澄清:
我要找的和Ramda的partial类似,
partial(f, [a])
除了部分更像是:
(f, a) => (b) => f(a, b)
即 partial
中的 b
是不需要的。
我称之为绑定的特例
如果你有两个参数的函数,比如 f(x, y),那么你可以定义 g(y) = f(5, y)。在这种情况下,您将 f 中的参数 x 绑定到固定点 5.
我将其称为具有延迟调用的准备函数。
第一部分接受函数和参数,returns 一个函数而不用参数调用给定的函数。稍后通过显式调用函数来调用它。
这是一个higher-order函数。
一个higher-order函数是一个至少接受一个或多个函数作为输入或returns另一个函数的函数。
这个定义满足代码:
(f, a) => () => f(a)
因为它本质上是一个返回另一个函数的函数。
在JavaScript中,这可能被称为绑定。一般来说,这种类型的组合器可能有一个更具体的名称(这与应用组合器非常相似 -> f => a => f(a)
)。
实施简单:
const bind = (f, a) => () => f(a)
那是 thunk。
从本质上讲,这是一种具体化的计算,您可以根据需要传递和评估。人们可能出于各种原因想要延迟表达式的计算(它可能很昂贵,可能有 time-sensitive 副作用,等等)。
执行 const enThunk = f => a => () => f(a);
可以让您绕过 f(a)
而无需实际评估它,直到稍后的某个时间点。