狂刀无痕 发表于 2009-1-5 22:11:00

本帖最后由 作者 于 2009-1-5 22:30:49 编辑 <br /><br /> nonsmall发表于2009-1-5 18:16:00static/image/common/back.gif精简一下(setq str \"\\"(setq a (strcat \\"\\"new\\"\\" \\"\\"disk\\"\\" \\"\\"d:\\\\\\"\\"))\\"\")(while (/= str (setq str (vl-string-subst \"@\" \"\\"\\"\" str))))(while (/= str

<p></p><p>另辟蹊径,一个函数6行代码包打无限多重字符化的表达式求值</p><p>$eval = 执行多次字符化的表达式字符串 ----- by 狂刀 2009.1.6<br/>(setq str "\"(setq a (strcat \"\"new\"\" \"\"disk\"\" \"\"d:\\\\\"\"))\"")<br/>($eval str)<br/>-&gt; "newdiskd:\\"<br/>(vl-prin1-to-string str)<br/>-&gt; "\"<a>\\\"(setq</a> a (strcat <a>\\\"\\\"new\\\"\\\</a>" <a>\\\"\\\"disk\\\"\\\</a>" <a>\\\"\\\"d:\\\\\\\\\\\"\\\"))\\\"\</a>"" <br/>($eval (vl-prin1-to-string (vl-prin1-to-string str)))<br/>-&gt; "newdiskd:\\"<br/>(vl-prin1-to-string (vl-prin1-to-string (vl-prin1-to-string (vl-prin1-to-string str))))<br/>-&gt;"\"<a>\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"(setq</a> a (strcat <a>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"new\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\</a>" <a>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"disk\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\</a>" <a>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"d:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"))\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\"\\\"\</a>""<br/>($eval (vl-prin1-to-string (vl-prin1-to-string (vl-prin1-to-string (vl-prin1-to-string str)))))<br/>-&gt; "newdiskd:\\"</p><p></p>

nonsmall 发表于 2009-1-6 09:17:00

vl-prin1-to-string逆运算函数 收了
页: 1 [2]
查看完整版本: [求助] 这个字符串怎么eval 值?