如何在变量$ 0的bash中获取提供给Lisp函数的参数数量? (我看到了类似的问题,但没有给出答案。)
答案 0 :(得分:4)
目前尚不清楚你究竟在问什么,但在Common Lisp中你可以使用&rest
参数来收集列表中不确定数量的参数。使用length
您可以看到提供了多少。例如:
CL-USER> (defun numargs (&rest arguments)
(length arguments))
NUMARGS
CL-USER> (numargs 1 2 3)
3
CL-USER> (numargs 1 2 3 4 5)
5
CL-USER> (numargs)
0
由于问题具有sbcl标记,您可能对特定于SBCL的解决方案感兴趣。 sb-introspect:function-lambda-list
看起来很相关:
CL-USER> (sb-introspect:function-lambda-list 'cons)
(SB-IMPL::SE1 SB-IMPL::SE2)
CL-USER> (sb-introspect:function-lambda-list 'numargs)
(&REST ARGUMENTS)
如果检查lambda列表,则可以确定函数可以使用多少个参数。