Emacs-Lisp で次のようなコードを書いたところエラーになった。
(insert 100000000)
wrong-type-argument: char-or-string-p 100000000
数字を出力するには number-to-string
で文字列に変える必要がある。
(insert (number-to-string 100000000))
100000000
数字は char
insert に数字を引数として与えると、char の文字コードを渡したのと同じになる。例えば、ASCII コードの文字「a」は文字コードで「97」なので
(insert 97)
a
このようになる。Emacs は ?文字
を評価すると文字コードが分かる。試しに ?安
を評価したら 23433 だった。これを insert してみる。
(insert 23433)
安
「安」が出力された。想定通り。
あとがき
今回、数字を insert しようとしてエラーになった。これは数字が大きかったから。数字が小さかったら、意図しない「文字」が出力されて、気付かなかったかもしれない。気をつけよ。
No comments:
Post a Comment