小编Ric*_*ons的帖子

如何使用自定义#%module-begin 维护定义功能?

我想对我的自定义语言生成的字符串做一些事情,例如显示它们。我创建了一个模块开始是这样的:

(define-syntax (module-begin stx)
  (syntax-case stx ()
    [(_ EXPR ...)
     #'(display (apply string-append (filter string? (list EXPR ...))))]))
Run Code Online (Sandbox Code Playgroud)

但是,这阻止了我在语言中使用定义。我收到错误“定义:在表达式上下文中不允许”。

如何在不失去使用定义和其他顶级表达式的能力的情况下获取字符串?我是否需要事先获取所有定义并将它们移到开头?

racket

4
推荐指数
1
解决办法
199
查看次数

标签 统计

racket ×1