在查看R6RS中的R6RS部分时,我看到了关键字make-variable-transformer,它被描述为标识符宏。给出的例子是非常小的,我并不是在摸索为什么它是必要的,或者用例需要它。要找到更多的使用它的例子也是很困难的。它可能使某种形式的语法转换成为可能,还是更优雅?
发布于 2008-12-03 08:26:30
在阅读了http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-13.html#node_sec_12.3之后,我的观点如下:
如果mac是语法转换器
(mac foo (bar baz))将用转换的结果替换整个s-expr,这可能会导致任何结果,(SOMETHING)说,而(foo mac bar)将只替换导致(foo SOMETHING bar)的mac。
通常,(set! mac 'foo)会发出错误信号,似乎转换器不能出现在集合表达式的左边,但是如果mac是变量转换器,(set! mac 'foo)将使用整个s-expr调用mac。
我的直觉告诉我,如果您开始用宏实现数据类型,这将是有用的。
发布于 2009-06-17 18:13:17
我偶然发现了这个搜索关于make变量转换器的文档。我有个问题,那个变变压器是为了.
http://groups.google.com/group/comp.lang.scheme/browse_frm/thread/96b07d431f1a66de/777f8e07ae1855f3#777f8e07ae1855f3
杰克·特雷斯
https://stackoverflow.com/questions/325186
复制相似问题