我正在尝试定义一个 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)) ...)))
但是,add-up
不接受最后一个定义 - Redex 抱怨e_1
并e_2
要求省略号,尽管它们已经低于一个省略号。有没有办法将球拍取消引用应用于 Redex 中省略号的每个成员?