преобразование числа в строку в Лиспе

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

Undefined function ITOA called with arguments (1) .

Как я могу сделать преобразование?

3 ответов


из числа в строку:

(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 nil "~A" 1)
"1"

появилась ЗАПИСЬ В СТРОКУ:

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

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

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