web-dev-qa-db-ja.com

LISPで数値を文字列に変換する

数値と文字列の間で変換するLISP関数を見つけようとしましたが、少しグーグルで検索した後、同じ名前の関数を見つけました。 (itoa 1) SLIMEを入力したとき

Undefined function ITOA called with arguments (1) .

どうすれば変換できますか?

21
elyashiv

数字から文字列へ:

(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
44
edem

ヘビーウェイトソリューションは、FORMATを使用することです。

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

WRITE-TO-STRING もあります。

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

参考:(itoa#)はAutoLISP(AutoCAD製図ソフトウェアに組み込まれているLISPバリアント)の機能にすぎないと思います。 AutoLISPには、Common LISPよりもはるかに少ない関数があり、異なる名前の同一の関数や、異なる名前で動作する同じ名前の関数がある場合があります。

おそらくそれがうまくいかなかったのです。私はAutoLISPを定期的に使用しており、(itoa#)はあなたが望んでいることを正確に実行します。

1
J.D. Sandifer