在lisp中将数字转换为字符串

在lisp中将数字转换为字符串,lisp,common-lisp,itoa,Lisp,Common Lisp,Itoa,我试图找到一个lisp函数来在数字和字符串之间转换,在谷歌搜索了一下之后,我喜欢一个同名的函数。当我输入(itoa 1)SLIME printed时: Undefined function ITOA called with arguments (1) . 如何进行转换?重量级解决方案是使用格式: [2]> (format nil "~A" 1) "1" 还有: 从数字到字符串: (write-to-string 5) "5" 您可以将字符串转换为任何数字表示法: (write-to-

我试图找到一个lisp函数来在数字和字符串之间转换,在谷歌搜索了一下之后,我喜欢一个同名的函数。当我输入
(itoa 1)
SLIME printed时:

Undefined function ITOA called with arguments (1) .

如何进行转换?

重量级解决方案是使用格式:

[2]> (format nil "~A" 1)
"1"
还有:

从数字到字符串:

(write-to-string 5)
"5"
您可以将字符串转换为任何数字表示法:

(write-to-string 341 :base 10)
"341"
从字符串到数字:

(parse-integer "5")
5
用一些垃圾

(parse-integer " 5 something not a number" :junk-allowed t)
5
或者使用以下命令:

(read-from-string "23 absd")
23
仅供参考:我相信(itoa#)只是AutoLISP中的一个功能,AutoLISP是嵌入在AutoCAD绘图软件中的LISP变体。AutoLISP的函数比普通Lisp少得多,有时相同的函数使用不同的名称,有时相同名称的函数使用不同的操作方式


这可能就是为什么它对你不起作用。我经常使用AutoLISP,并且(itoa#)会完全按照您的要求执行。

不要在外部提供的字符串上使用
从字符串读取
,或者至少在执行时将
*读取评估*
绑定为false。一般数字解析还需要注意的是库
parse number
。似乎
(write to string)
已被删除。请使用
(数字到字符串)
,请参阅。感谢您链接到CLHS。这有助于使这个答案比其他答案更有用。
(read-from-string "23 absd")
23