【问题标题】:Read macros in Scheme在 Scheme 中读取宏
【发布时间】:2013-11-15 06:13:55
【问题描述】:

在 Common Lisp 中,有“读取宏”可用于将语法解析为 Lisp 代码。

  1. 是否有可能/如何在纯 Scheme 中实现它?
  2. 哪些实现以及如何支持这一点?

【问题讨论】:

  • 不是纯 Scheme,但 Racket 有它们:docs.racket-lang.org/reference/Reader_Extension.html
  • 由于阅读器宏需要挂钩到您的解析器,它可能需要由您正在使用的方案实现。 IE,除非您正在构建自己的解析器,否则您可能无法在纯方案中实现它。

标签: scheme


【解决方案1】:

想到的唯一半便携方式是通过SRFI-10 的有限形式的阅读器宏。这些必须以一个尖号和一个逗号开头,然后是一个列表表达式,该表达式以一个标识读取时构造函数的符号开头。

CHICKEN 还支持将arbitrary characters 用作阅读器宏挂钩。

【讨论】:

  • 听起来像 Clojure 中的 data readers,否则它缺少用户可访问的阅读器宏系统。
猜你喜欢
  • 2013-12-01
  • 1970-01-01
  • 2012-10-24
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 2014-03-23
  • 1970-01-01
  • 2016-12-13
相关资源
最近更新 更多