我们称这个函数为“动态定义”。
基本上我想编写一个像这样工作的宏或 lambda:
$ (dynamic-define "variable" 123)
$ variable
$ => 123
我尝试过这个:
(define-syntax dynamic-define
(syntax-rules ()
((_ string <body>)
(eval `(define ,(string->symbol string) <body>)))))
它按预期工作,但似乎不是一个好的解决方案。
我尝试在没有 eval 的情况下使用:
(define-syntax dynamic-define
(syntax-rules ()
((_ string <body>)
(define (string->symbol string) <body>))))
但是当我尝试使用时,我得到了这个错误:
Error: invalid syntax (define (string->symbol "variable") 123)
我应该怎么办?
(请:编辑此问题以适合母语英语并请删除此行)