Elisp得到功能arity?

时间:2013-07-17 06:58:43

标签: emacs elisp

我希望能够做到:

(function-arity (intern "expt"))

我搜索了这个解决方案 https://github.com/emacsmirror/parser/blob/master/parser-fn.el

但是它正在使用help-function-arglist,所以它并不是那么简单。 我想要一些更坚固的东西,最好是坚如磐石的。

2 个答案:

答案 0 :(得分:3)

没有坚如磐石function-arity这样的东西。在人们想要的大多数情况下,他们真正想要的是根据它接受的参数数量以不同的方式调用函数(例如,因为它的签名在不同的Emacs版本中是不同的),在这种情况下“尝试”的方法用许多参数调用它并捕获潜在的错误“就像它得到的一样好。

答案 1 :(得分:1)

看不出任何错误的WRT help-function-arglist,这就是它的工作。

虽然lambda-arity - 指出 - 似乎还有一些错误。

例如

(optional-arglist (memq '&optional arglist))

应该使用`member'& optional',它将返回剩余的列表,从而能够计算剩余的元素。