6
有没有办法在运行时找出函数有多少输入(参数,参数)?动态地找出一个函数有多少输入,球拍
说,我想:
(define (my-function unknown-function)
...
(number-of-necessary-arguments unknown-function)
...)
有没有办法在运行时找出函数有多少输入(参数,参数)?动态地找出一个函数有多少输入,球拍
说,我想:
(define (my-function unknown-function)
...
(number-of-necessary-arguments unknown-function)
...)
您可以使用procedure-arity
。
(procedure-arity expt) ; => 2
注意,使用procedure-arity
与可变参数的函数或case-lambda
等时,结果是更为复杂:
(procedure-arity apply) ; => (arity-at-least 2)
(procedure-arity (case-lambda
((x) x)
((x y z) z)
((a b c d e f . g) g))) ; => `(1 3 ,(arity-at-least 6))
你不需要“应用”其实? – paul