与read-from-string clisp相反

时间:2017-07-29 14:07:10

标签: common-lisp reverse clisp

我想定义一个与下面相反的函数to-string

> (read-from-string "(foo a b)")
(FOO A B) ;

2 个答案:

答案 0 :(得分:4)

函数write-to-string and prin1-to-string做你想做的事:

> (read-from-string "(foo \"Hi\" 17)")
(FOO "Hi" 17) ;

> (prin1-to-string '(FOO "Hi" 17))
"(FOO \"Hi\" 17)"
> (write-to-string '(FOO "Hi" 17))
"(FOO \"Hi\" 17)"

函数write-to-string还包含允许您调整结果的关键字参数:

> (write-to-string '(FOO "Hi" 17) :case :downcase)
"(foo \"Hi\" 17)"

答案 1 :(得分:1)

这似乎有效

(with-output-to-string (s)
  (princ '(1 2 3) s))