どこかでいくつかのシンボルを定義したとします:
#lang racket
(define foo 123)
(define bar '("1" "2" "3"))
"foo = 123"
またはのような文字列を生成する方法が必要"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