subst (AutoLISP)

リストで古い項目を検索し、古い項目があるたびに新しい項目で置き換えたリストのコピーを返します。

サポートされているプラットフォーム: Windows および Mac OS

構文と要素

(subst newitem olditem lst)
newitem

タイプ: 整数、実数、文字列、リスト、シンボル、ads_name、T、nil

アトムまたはリスト。

olditem

タイプ: 整数、実数、文字列、リスト、シンボル、ads_name、T、nil

アトムまたはリスト。

lst

タイプ: リスト

リスト。

戻り値

すべての olditemnewitem に置き換えたリスト。lst 引数に olditem が存在しない場合、subst 関数は lst を変更せずに返します。

(setq sample '(a b (c d) b))
(A B (C D) B)

(subst 'qq 'b sample)
(A QQ (C D) QQ)

(subst 'qq 'z sample)
(A B (C D) B)

(subst 'qq '(c d) sample)
(A B QQ B)

(subst '(qq rr) '(c d) sample)
(A B (QQ RR) B)

(subst '(qq rr) 'z sample)
(A B (C D) B)

subst 関数を assoc 関数と組み合わせて使用すると、連想リスト内の 1 つのキーに関連する値を、簡単に置き換えることができます。次に、その関数呼び出しの例を示します。

変数 who に連想リストを代入します。

(setq who '((first john) (mid q) (last public)))
((FIRST JOHN) (MID Q) (LAST PUBLIC))

次に、変数 old に(FIRST JOHN)を、変数 new に(FIRST J)を代入します。

(setq old (assoc 'first who) new '(first j))
(FIRST J)

最後に、連想リストの最初の項目の値を置き換えます。

(subst new old who)
((FIRST J) (MID Q) (LAST PUBLIC))