次のように、ペアのリストを単一の数値のリストに変換する Redex メタ関数を定義しようとしています。
#lang racket
(require redex)
(define-language L
(e n ((n n) ...) (n ...))
(n number))
(define-metafunction L
((add-up n) n)
((add-up ((e_1 e_2) ...)) (,(+ (term e_1) (term e_2)) ...)))
しかし、 の最後の定義は受け入れられません。すでに 1 つの省略記号の下にあるにも関わらず、Redex は省略記号を必要とし、add-up
不平を言っています。Redex の省略記号の各メンバーに Racket unquote を適用する方法はありますか?e_1
e_2