在Emacs Lisp中,(function(lambda ...))
和(lambda ...)
都是表示匿名函数的方式,但它们之间存在一些区别。
(lambda ...)
是一个简单的匿名函数,其中...
表示函数的参数和函数体。例如:(lambda (x) (+ x 1))
表示一个接受一个参数x的函数,返回x+1的值。而(function(lambda ...))
则是将(lambda ...)
作为参数传递给function
函数,用于创建一个函数对象。例如:(function (lambda (x) (+ x 1)))
。(lambda ...)
本身是一个函数对象,可以直接作为参数传递给其他函数或作为变量存储。而(function(lambda ...))
则会返回一个函数对象,可以直接调用或作为参数传递给其他函数。(lambda ...)
通常用于需要传递函数作为参数的场景,例如mapcar
、remove-if
等高阶函数。而(function(lambda ...))
则通常用于需要创建一个函数对象的场景,例如作为其他函数的默认参数或作为事件处理函数等。推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云