什么是具有以下类型签名的函数:(x)=> (func)=> (...值)=> FUNC(X,...值)

时间:2016-03-18 06:46:29

标签: javascript lisp functor lispyscript

我有一个函数,我已经为使用lispyscript编写的节点js传递了上下文,它做了我想要的。这个函数的实际实现不是问题,这是一个词汇问题。

具有此类型签名的函数是否具有名称?

编辑: 我很确定有人会称这是一种仿函数,如果这是正确的,它会是什么类型的仿函数?

(defun closeOverDir (dir)
  (defun closure (fn)
     (lambda () (fn dir ...arguments))))

1 个答案:

答案 0 :(得分:1)

我没有看到与functor的数学结构有任何关系。作为一个关闭其(词汇)范围(部分)的函数(因此,"闭合")显然它是function object,它也是常见的(至少对于C ++社区而言,称为" functors"。

查看签名

(x) => (func) => (...values) => func(x, ...values)

如果交换前两个参数,则签名

(func) => (x) => (...values) => func(x, ...values)

partial application基本相同:提供函数func以及一些参数值x给出一个函数,它需要更多的参数值(其余的)并将函数func应用于给予部分应用程序x的参数值以及给予结果的参数值。