たてたてよこよこまるかいてちょん

組み込み関連の情報を共有するためのブログです

全ての全角英数文字を生まれる前に消し去りたい、あ、やっぱり貴方の頭の中からだけでいいや。

アルファベットや数字は半角でお願いしますっていったじゃないですかー。やっぱり全角も欲しいってやめてくださいよ。
文字種は 26*2+10 しかないから、もう連想リストでいいかなって、やっつけた。

(defun eisuu-convert (string &optional (han->zen t) ) 
  (let* ((hankaku "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
	 (zenkaku "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
	 (hz-alist (if han->zen
		       (pairlis (coerce hankaku 'list) (coerce zenkaku 'list))
		       (pairlis (coerce zenkaku 'list) (coerce hankaku 'list)))))
    (coerce (mapcar
	     #'(lambda (x) (let ((result-here (assoc x hz-alist)))
			     (if result-here
				 (cdr result-here)
				 x)))
	     (coerce string 'list))
	    'string)))
記事のLicense このブログの記事は特に断りのない限り、引用部分を除いて、以下の CC-BY 4.0でライセンスします。 https://creativecommons.org/licenses/by/4.0/deed.ja ただし、ブログ内にあるコードは、特に断りのない限り、CC-BY 4.0またはMITLicense で利用できるものとします。