Next: 9.9 find-all-if
Up: 9 シーケンスデータ
Previous: 9.7 find-if
CommonLispでは,シーケンスデータに対して
データを探索する関数としてfindがあります.
<cl> (find 3 '(2 -3.0 1 2 3 -3 4 5))
3
<cl> (find 3.0 '(2 -3.0 1 2 3 -3 4 5))
NIL
<cl> (find 3.0 '(2 -3.0 1 2 3 -3 4 5) :test #'eql)
NIL
<cl> (find 3.0 '(2 -3.0 1 2 3 -3 4 5) :test #'equal)
NIL
<cl> (find 3.0 '(2 -3.0 1 2 3 -3 4 5) :test #'=)
3
<cl> (find 3.0 '(2 -3.0 1 2 3 -3 4 5) :test #'equalp)
3
<cl> (find 3 '(2 -3.0 1 2 3 -3 4 5) :test #'<)
4
<cl> (find 3 '(2 -3.0 1 2 3 -3 4 5) :key #'abs)
3
<cl> (find 3 '(2 -3.0 1 2 3 -3 4 5)
:key #'abs :test #'equalp)
-3.0
findはfind-ifを用いて作ることができます.
<cl> (defun my-find (y data)
(find-if #'(lambda (x) (eq x y)) data))
MY-FIND
<cl> (my-find 'a '(a b c))
A
<cl> (my-find 'd '(a b c))
NIL
generated through LaTeX2HTML. M.Inaba 平成18年5月7日