非破壊版、破壊版 関数対応表


Tag: 【募集中】

非破壊版、破壊版 関数対応表

引数の一部を処理中に変更する、所謂 "破壊的な関数"があります。これらの多くは引数を破壊しないバージョンも存在します。以下はその 破壊的な関数と 非破壊的な関数の対応表です。

append x nconc系

非破壊関数 破壊関数
append nconc
revappend nreconc

foo x nfoo系

非破壊関数 破壊関数
butlast nbutlast
intersection nintersection
reverse nreverse
set-difference nset-difference
set-exclusive-or nset-exclusive-or
string-capitalize nstring-capitalize
string-downcase nstring-downcase
string-upcase nstring-upcase
sublis nsublis
subst nsubst
subst-if nsubst-if
subst-if-not nsubst-if-not
substitute nsubstitute
substitute-if nsubstitute-if
substitute-if-not nsubstitute-if-not
union nunion

remove x delete系

非破壊関数 破壊関数
remove delete
remove-duplicates delete-duplicates
remove-if delete-if
remove-if-not delete-if-not

ありそうでない系

非破壊関数 破壊関数
なし sort
なし merge
なし remf
ldiff なし

対応してるといえば対応してる、してないといえばしてない系

非破壊関数 破壊関数
cons push
car or cdr pop
mapcar or map map-into
adjoin pushnew
subseq replace or (setf subseq)
substitute-if item (constantly t) fill