Perlのjoin関数
にあたるものがないっぽい.concatと高階関数を使えば実現できるかもしれないのだけれど,Lisp脳が出来ていないので無理.
ゆとりらしく,自分にあったものを書くことにした.
(defun join (delm lis) (do ((oldlis lis (cdr oldlis)) (str (car lis) (concat str delm (cadr oldlis)))) ((null (cadr oldlis)) str)))
適当に書いたのでめちゃくちゃ副作用が起こりそうな気がする.どきどきしながらテスト.使い方はPerlのjoin関数と同じ.
(join "," '("foo" "hoge" "bar")) => "foo,hoge,bar" (join " " '("1" "2" "3")) => "1 2 3" ; 1文字の場合もうまくいく.というか変な結果を出さない (join "," '("foo")) "foo"
string限定なので,numberの場合気を遣って変換してあげるとか.自分用だし面倒くさいからいいや.
CSVの変換プログラムを書いていて,読み込みはできたけれど書き出しできねえええEEEEEという状態で2時間くらいはまってました.作業に戻ります.