cl関数は便利なのがおおい... unionとかremove-ifとかset-differenceとか...etc

anything.elは将来的に (require 'cl)をeval-whenで囲むようにする予定とかあるのかな...

予定があるのだったら移行する時のためにsource書くときにcl関数使わないようにしたほうが良いっすよね。

でもremove-ifとか使えると楽なんですよね。自分で定義するのもなんか気持ち悪いし。どうなんだろう。
自分は、慣習みたいなのをもっと調べないと。

2008/09/19 追記

簡単に調べてみたのでメモ

remove-if
subseq
some

の三つが使われているのは確認。
やっぱりremove-ifとsomeは便利だー。


適当ですが以下の関数でoccurして視認しました。color-moccur必要です。

(defvar my-cl-funcs '("acons" "adjoin" "assoc*" "assoc-if" "assoc-if-not" "caddr" "ceiling*" "cl-float-limits" "cl-prettyexpand" "coerce" "compiler-macroexpand" "concatenate" "copy-list" "copy-tree" "count" "count-if" "count-if-not" "delete*" "delete-duplicates" "delete-if" "delete-if-not" "endp" "equalp" "evenp" "every" "fill" "find" "find-if" "find-if-not" "first" "floatp-safe" "floor*" "gcd" "gensym" "gentemp" "get*" "get-setf-method" "getf" "intersection" "isqrt" "lcm" "ldiff" "list*" "list-length" "make-random-state" "map" "mapc" "mapcan" "mapcar*" "mapcon" "mapl" "maplist" "member*" "member-if" "member-if-not" "merge" "minusp" "mismatch" "mod*" "nintersection" "notany" "notevery" "nset-difference" "nset-exclusive-or" "nsublis" "nsubst" "nsubst-if" "nsubst-if-not" "nsubstitute" "nsubstitute-if" "nsubstitute-if-not" "nunion" "oddp" "pairlis" "plusp" "position" "position-if" "position-if-not" "proclaim" "random*" "random-state-p" "rassoc*" "rassoc-if" "rassoc-if-not" "reduce" "rem*" "remove*" "remove-duplicates" "remove-if" "remove-if-not" "remprop" "replace" "rest" "round*" "search" "set-difference" "set-exclusive-or" "some" "sort*" "stable-sort" "sublis" "subseq" "subsetp" "subst" "subst-if" "subst-if-not" "substitute" "substitute-if" "substitute-if-not" "tailp" "tree-equal" "truncate*" "typep" "union"))
(defun my-check-cl-funcs ()
  (interactive)
  (let* ((re (regexp-opt my-cl-funcs))
         (re (concat  "\\_<" "\\(?:" re "\\)" "\\_>")))
    (occur-by-moccur re nil)))


perl-completion.elもcl関数使いまくってる。
おかげでかなり短く書けてる部分が多い。