CLでSRFI-102 — #:g1

Posted 2012-01-29 22:15:00 GMT

CLでSRFI、今回は、SRFI-102の「Procedure Arity Inspection」です。
SRFI-102はまだドラフトなので没になる可能性もありますが、引数の数の取得です。
Racketや、Gacheでは既にネイティブにサポートしている様子。 可変長引数では、ARITY-AT-LEASTというオブジェクト。義務引数(TAO的な呼び方)では、個数が返ります。

動作

(procedure-arity #'list)
;=>  #<ARITY-AT-LEAST 0>

(procedure-arity #'cons)
;=>  2

(arity-at-least? (procedure-arity #'list))
;=>  T

(arity-at-least-value (procedure-arity #'list))
;=>  0

(procedure-arity-includes? #'cons 2)
;=>  T

(procedure-arity-includes? #'list 0)
;=>  T

(procedure-arity-includes? #'list 100)
;=>  T

移植について

CLで関数の引数の取得は処理系依存ですが、SLIMEにも引数を表示機能があることから分かるように大抵の処理系では取得する方法があるので、それを利用しています。

comments powered by Disqus