【发布时间】:2020-06-11 18:43:18
【问题描述】:
我正在尝试编写一些代码来打印符号并在球拍中评估与之关联的函数
我已经设法在运行时使用 eval 实现了这一点,但我认为不使用 eval 也应该可以做到这一点。
评估版:
(define ns (namespace-anchor->namespace a))
(define (deco-display fun-sym bstr)
(display (symbol->string fun-sym))
(display ": ")
(display (eval `(,fun-sym ,bstr) ns)))
示例用法:
(define (extract-id bstr) (subbytes bstr 0 8 ))
(deco-display 'extract-id bstr)
我试过了:
(define (xxx) (display "asdas"))
(define-syntax (print-and-do stx)
(syntax-case stx ()
[(_ p) #`(begin (display #'p) (newline) (p))]))
但结果不是我所期望的
(print-and-do xxx)
.#<syntax:interactions from an unsaved editor:5:16 xxx>
asdas
【问题讨论】:
-
试试
(display #''p)。 -
欢迎来到 Stack Overflow。您的解决方案是正确的,您是否愿意将其放入解决方案框中,以便我们对其进行投票,您可以接受它作为答案?
-
@soegaard 谢谢,我实际上使用您的提示更新了解决方案