(define-same-params (idx edge) (index->x (remainder idx edge)) (index->y (quotient idx edge)) (index->xy (values (index->x idx edge) (index->y idx edge))) (hline-indices (vector-iota edge (* (index->y idx edge) edge))))
小手先の誤魔化しのような気もしますが。
(define-syntax define-same-params (syntax-rules () ((_ (params ...)(name body ...)) (define (name params ...) body ...)) ((_ (params ...)(name body ...) x ...) (begin (define-same-params (params ...)(name body ...)) (define-same-params (params ...) x ...) (undefined)))))
追記
@valvallow R6RSならこれでいける(define-syntax define-same-params(syntax-rules()((_(p ...)(n b ...)...)(begin(define(n p ...)b ...)...)))) R5RSの微妙な不備
(define-syntax define-same-params (syntax-rules () ((_ (p ...)(n b ...) ...) (begin (define (n p ...) b ...) ...))))
R6RS 。。
0 件のコメント:
コメントを投稿