如何在球拍中查看展开的宏? [英] How can I see expanded macros in racket?

查看:11
本文介绍了如何在球拍中查看展开的宏?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到的答案是:编写一个简单的宏来记录宏展开时的时间,然后始终返回该时间。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 Repl中。

它将向您显示语法对象的图形表示-记住单击小箭头!在神话宏中,我编写了一些语法对象。

https://soegaard.github.io/mythical-macros/

另一种方法是使用";Macro Stepper";。点击Drracket右上角的按钮:该图标由#和播放符号组合而成。

这篇关于如何在球拍中查看展开的宏?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆