gpt4 book ai didi

racket - 用于调试的条件要求和定义

转载 作者:行者123 更新时间:2023-12-02 09:30:12 24 4
gpt4 key购买 nike

我想在代码中打开和关闭调试,因此我尝试在模块顶部执行类似的操作...

(define DEBUGGING #f)
(if DEBUGGING
(require unstable/debug)
(define (debug x) void))

但是我不能在条件中requiredefine。我快速浏览了 dynamic-require 但不知道如何解决问题。

最佳答案

首先将DEBUGGING定义为在扩展时使用的变量,而不是运行时:

(define-for-syntax DEBUGGING #f)

然后创建一个宏,例如

(define-syntax (if-debug stx)
(let ((dat (syntax->datum stx)))
(if DEBUGGING
(datum->syntax stx (cadr dat))
(datum->syntax stx (caddr dat)))))

最后使用 as

(if-debug
(require unstable/debug)
(define (debug x) void))

关于racket - 用于调试的条件要求和定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com