很抱歉,如果标题有点奇怪,但我不确定如何表达它。无论如何我的项目是一个对象制造者,现在我只是格式化所有内容,因此它与eval一起工作,我无法将此语句(cond ((equal? message 'getx) xval)...)
转换为我的目标代码生成器,其中message是传入的命令,xval只是一个实例变量。显然是平等的?只需使用'equal?
和'message
就可以轻松获取消息,以便不进行评估,但如何让撇号显示?
如果有所作为,我会在Dr. Racket中使用Pretty Big
澄清:
如果我运行(eval (list 'equal? 'message 'getx
)...)它将以(equal? message getx)...
运行,而我希望它为(equal? message 'getx)
我希望它将消息与符号'getx
进行比较而不是参考getx
。
答案 0 :(得分:3)
如果我理解正确,你只需要引用整个表达式:
'(cond ((equal? message 'getx) xval)...)