我得到了这个答案https://stackoverflow.com/a/70318991 https://stackoverflow.com/a/70318991关于编写一个简单的宏来记录宏扩展时的时间,然后始终返回该时间。
#lang racket
(begin-for-syntax
(define the-time (current-seconds)))
(define-syntax (macro-expansion-seconds stx)
(datum->syntax stx the-time))
(macro-expansion-seconds)
(macro-expansion-seconds)
(macro-expansion-seconds)
它工作得很好,但现在有一个简单的方法来查看扩展版本(macro-expansion-seconds)
不评价? (用于调试更复杂的)
您可以使用
(expand #'(macro-expansion-seconds))
在 DrRacket 回复中。
它将向您显示语法对象的图形表示 - 记得单击小箭头!在神话宏中,我编写了一些语法对象。
https://soegaard.github.io/mythical-macros/ https://soegaard.github.io/mythical-macros/
另一种方法是使用“宏步进器”。点击DrRacket右上角的按钮:该图标是由 组成的组合#
和一个游戏符号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)