[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08955] Re: リストから取得した要素について



こんばんは、つるりんです。

やなぎうらさん、西口さんお返事ありがとうございました。

>> (やなぎうらさん)
> ご自身でもお気づきのように、ここはかなり怪しいですね^
^;
> 
> ;;;;;;; 拡張子を変更
> (defun change-extension (fullpath ext-src ext-dst)
>   (substitute-string fullpath ext-src ext-dst)
> )
> 
> substitute-string は使わずに、
> 
> pathname-device pathname : デバイス名を返す
>   :
> pathname-host            : ホスト名を返す
> 
> あたりを使われてはいかがでしょう。

アドバイスありがとうございます。
ここは、もともと split-string で拡張子前後文字列を
リストで取得して拡張子を変更するようなコードでした。
最初に ML にメールさせていただいた時、西口さんより
(string-match "\.txt$" b-name)
と言う関数を教えていただきました。
機能的には、string-match と
ディレクトリでは無い確認を組み合わせてやれば十分だと思う
のですが
string-match でマッチする index 番目を取得した後、
その index をいかして文字列を取得する方法はあるのでしょ
うか?
自分の探し方が悪く、string-match でマッチして
文字列取得するようなことができませんでした。


>>(西口さん)
> というわけで、比較関数を指定できるcaseを書いてみました
。
> 
> ;;
> (defmacro case-ex ((key &key (test #'eql)) &body
>     :
> 	 ,(inner key-sym body)))))
> ;;

コードありがとうございました。
自分の知識及ばず、呪文のように見えてきました。(^^;
じっくり分解しながら実験してみます。

下の書き方すごく勉強になりました。
(まだそんなレベルです。(^^)
> (case-ex ((pathname-type full-path) :test
#'string-equal)


ではでは皆さんありがとうございました。
-- 
つるりん tu93a@xxxxxxxxxxx

Index Home