Лучший способ определить контракт для функции с большим количеством ключевых аргументов - PullRequest
1 голос
/ 31 марта 2020

Скажем, у меня есть функция, которая принимает множество однородных аргументов ключевых слов:

(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)

Полагаю, можно написать макрос для этого, но есть ли более простое решение?

...