[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/03 02:06 / Filesize : 277 KB / Number-of Response : 955
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【叩かれて】Emacs Lisp道場【強くなれ】



439 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/04/18(月) 14:06:21 ]
ふつーに書けば
(let ((r-h-alist
'((a . あ) (i . い) (u . う) (e . え) (o . お)
(ka . か) (ki . き) (ku . く) (ke . け) (ko . こ)
(sa . さ) (si . し) (su . す) (se . せ) (so . そ))))
(defconst r-h-table
(let ((table (make-hash-table :test 'eq)))
(dolist (x r-h-alist)
(puthash (car x) (cdr x) table))
table))
(defconst r-h-regexp
(regexp-opt (mapcar (lambda (x) (symbol-name (car x))) r-h-alist))))
(defun r-h (roma)
(let ((start 0) result)
(while (string-match r-h-regexp roma start)
(if (> (match-beginning 0) start)
(push (substring roma start (match-beginning 0)) result))
(setq start (match-end 0))
(push (symbol-name (gethash (intern (match-string 0 roma)) r-h-table))
result))
(push (substring roma start) result)
(apply #'concat (nreverse result))))
こんな感じだろ。cond で比較してくなんて小学生か?






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<277KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef