Преобразование числа в строку в lisp

Я попытался найти функцию lisp для преобразования между числами и строками, а после небольшой поисковой системы я люблю функцию с тем же именем. когда я ввел (itoa 1) SLIME, напечатанный:

Undefined function ITOA called with arguments (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

Ответ 2

В тяжелом решении используется FORMAT:

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

Существует также WRITE-TO-STRING:

[3]> (write-to-string 10)
"10"

Ответ 3

FYI: Я считаю, что (itoa #) - это только функция AutoLISP - вариант LISP, встроенный в программу разработки AutoCAD. AutoLISP имеет гораздо меньше функций, чем Common LISP, а иногда и идентичные функции с другим именем или функциями с тем же именем, которые работают по-разному.

Вероятно, это не помогло вам. Я регулярно пользуюсь AutoLISP и (itoa #) будет делать именно то, что вы там хотите.