next up previous
Next: 9.9 find-all-if Up: 9 シーケンスデータ Previous: 9.7 find-if

9.8 find

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日