なんだこれは

はてなダイアリーから移転しました。

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

アルファベットや数字は半角でお願いしますっていったじゃないですかー。やっぱり全角も欲しいってやめてくださいよ。
文字種は 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)))