Преобразование числа в строку в 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 #) будет делать именно то, что вы там хотите.