评估包含在字符串中的表达式

oak*_*ld1 9 common-lisp

我有一个数据库,它在双引号内返回vaild CL表达式.

是否可以将这些字符串转换为表达式.

例如,我通过CLSQL从这个数据库中进行查询,结果它返回给我:

"(foo a b)"

我应该如何将此表达式转换为:

(foo a b)

并进一步评估它?

Fre*_*Foo 13

> (read-from-string "(foo a b)")
(FOO A B) ;
9
Run Code Online (Sandbox Code Playgroud)

9是由多个值产生的第二个read-from-string; 你可以忽略它:

(eval (read-from-string "(foo a b)"))
Run Code Online (Sandbox Code Playgroud)

如果给出正确的定义,你会做你想做的事.