2

次のように、ペアのリストを単一の数値のリストに変換する 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_1e_2

4

1 に答える 1