Function 为具有大量关键字参数的函数定义约定的更好方法

Function 为具有大量关键字参数的函数定义约定的更好方法,function,racket,contract,Function,Racket,Contract,假设我有一个函数,它接受很多同质关键字参数: (define (my-function #:arg1 arg1 #:arg2 arg2 ; etc. #:argN argN) (do-something)) “同质”是指它们都属于同一合同。有没有更好的方法来定义my function的契约,而不只是再次列出所有参数,如: (-> #:arg1 my-arg/c

假设我有一个函数,它接受很多同质关键字参数:

(define (my-function #:arg1 arg1
                     #:arg2 arg2
                     ; etc.
                     #:argN argN) (do-something))
“同质”是指它们都属于同一合同。有没有更好的方法来定义
my function
的契约,而不只是再次列出所有参数,如:

(-> #:arg1 my-arg/c
    #:arg2 my-arg/c
    ; etc.
    #:argN my-arg/c
    my-return/c)

我想人们可以为此编写一个宏,但有更简单的解决方案吗?

AFAIK,没有更好的方法,宏是最好的解决方案。AFAIK,没有更好的方法,宏是最好的解决方案。