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