我一直在用 Scheme 提供一种语言。
(define-datatype statement statement?
(add1 (V symbol?))
(sub1 (V symbol?))
(skip (V symbol?))
(if-goto (V symbol?)
(l symbol?)))
(define-datatype instruction instruction?
(labeled (l symbol?)
(i statement?))
(unlabeled (i statement?)))
(define-datatype program program?
(a-program (l (list-of instruction?))))
我正在尝试创建一个能够将程序转换为指令列表的新函数。我该怎么做呢?
这是我到目前为止所拥有的:
(define pgm->list
(lambda (pgm)
;what goes here