我希望能够做到:
(function-arity (intern "expt"))
我搜索了这个解决方案 https://github.com/emacsmirror/parser/blob/master/parser-fn.el
但是它正在使用help-function-arglist
,所以它并不是那么简单。
我想要一些更坚固的东西,最好是坚如磐石的。
答案 0 :(得分:3)
没有坚如磐石function-arity
这样的东西。在人们想要的大多数情况下,他们真正想要的是根据它接受的参数数量以不同的方式调用函数(例如,因为它的签名在不同的Emacs版本中是不同的),在这种情况下“尝试”的方法用许多参数调用它并捕获潜在的错误“就像它得到的一样好。
答案 1 :(得分:1)
看不出任何错误的WRT help-function-arglist
,这就是它的工作。
虽然lambda-arity
- 指出 - 似乎还有一些错误。
例如
(optional-arglist (memq '&optional arglist))
应该使用`member'& optional',它将返回剩余的列表,从而能够计算剩余的元素。