--- title: リストの n 番目を取り出す author: kazu634 date: 2009-11-12 wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4927;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - Emacs - Lisp ---
Emacs Lisp でリストの n 番目を取り出す命令がありました。リストを配列みたいに使う時には nth というのがあるみたいです。
使ってみました。今回は「_」区切りの文字列を分割してみます。
(defun generate_candidate (str) (let* ((str_list (split-string str "_")) ;; 引数として与えられたものを「_」で区切ってリストに (site (nth str_list)) ;; リストの0番目をローカル変数「site」に代入。以下同じ。 (shopname (nth 1 str_list)) (address (nth 2 str_list)) (url (nth 3 str_list)) (tel (nth 4 str_list))) (message (format "[%s] %s" site shopname)))) (generate_candidate "Hotpepper_赤ちり亭 大森店_東京都大田区大森北1-3-7サファイア北ビルB1F_http://www.hotpepper.jp/strJ000030775/?vos=nhppalsa000016_03-5753-0399")
こうすることで、「[Hotpepper] 赤ちり亭 大森店」と表示されます。
こいつを使って、anythingのソースを作ってみるぞ!