假设我在某处定义了几个符号:
#lang racket
(define foo 123)
(define bar '("1" "2" "3"))
我需要一种方法来生成类似"foo = 123"
or的字符串"bar = '("1" "2" "3")"
。我为此写了一个函数:
(define (f2 sy)
(format "~a = ~s" sy (eval sy)))
此功能在解释器窗口中运行良好。
> (f2 'foo)
"foo = 123"
> (f2 'bar)
"bar = (\"1\" \"2\" \"3\")"
这对我来说是相当满意的。但是,当我在代码中使用它时,我得到
foo: unbound identifier;
also, no #%top syntax transformer is bound in: foo
我有一种感觉,我做错了什么。您能否提出解决我问题的正确方法?
PS:我正在使用DrRacket, version 5.3.1