【问题标题】:In Racket or Scheme, is there any way to convert an ellipsis syntax object to a list of syntax objects?在 Racket 或 Scheme 中,有没有办法将省略号语法对象转换为语法对象列表?
【发布时间】:2013-08-17 19:30:20
【问题描述】:

例如:

(syntax-case #'(a b c d) ()
  ((x ...) (list #'x ...))

在示例中,(list #'x ...) 显然不起作用,但是如何输出与 (list #'a #'b #'c #'d) 等效的内容?

【问题讨论】:

    标签: scheme pattern-matching racket ellipsis syntax-object


    【解决方案1】:

    这是一种方法:

    Welcome to Racket v5.90.0.6.
    -> (syntax-case #'(a b c d) ()
         ((x ...) (syntax->list #'(x ...))))
    '(#<syntax:5:16 a> #<syntax:5:18 b> #<syntax:5:20 c> #<syntax:5:22 d>)
    

    有关更多信息,请参阅syntax object operations 部分和syntax/stx 导出的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-10
      • 2023-03-17
      • 2011-02-02
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 2020-01-24
      • 2019-06-21
      相关资源
      最近更新 更多