Функції відбору, Детальна інформація
Функції відбору
(FIND-IF test list). Досліджує список list для пошуку елемента, для якого ознака перевірки за тестом test не дорівнює NIL.
Для обох функцій, якщо елемент, що задовольняє тесту, знайдено, даний елемент видається, в іншому випадку повертається NIL.
(DEFUN FIND (OBJ LST TEST)
( (ATOM LST) NIL)
R
T
\x0153
\x00B4
LL TEST)
(SETQ TEST 'EQL) ) )
( (FUNCALL TEST JBJ (CAR LST))
(CAR LST) )
(FIND OBJ (CDR LST) TEST) )
$ (FIND 'EAT '(CORN WHEAT OATS RICE) 'FINDSTRING)
WHEAT
$ (FIND-IF '(LAMBDA (X) (MINUSP (CDR X))) '((X . 3) (Y . 0) 9Z . -2/3)))
(Z . -0.6666666)
8. (POSITION object list test). Виконує лінійний пошук у списку list того елемента, для якого ознака порівняння з об’єктом object за тестом test не є NIL. Якщо тест-аргумент дорівнює NIL або не задан, POSITION використовує EQL-тест.
(POSITION-IF test list). Шукає у списку list елемент, для якого ознака перевірки за тестом не є NIL.
Для обох функцій, якщо елемент, що задовольняє тесту, знайдено, повертається порядковий номер даного елемента, починаючи з 0. В іншому випадку повертається NIL.
(DEFUN POSITION (OBJ LST TEST)
(position-aux OBJ LST TEST 0) )
(DEFUN position-aux (OBJ LST TEST INDEX)
((ATOM LST) NIL)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
(FUNCALL TEST OBJ (CAR LST)) INDEX)
(position-aux OBJ (CDR LST) TEST (ADD1 INDEX)
$ (POSITION '(A B C) '((R S T) (C A B) (A B C)))
NIL
Для обох функцій, якщо елемент, що задовольняє тесту, знайдено, даний елемент видається, в іншому випадку повертається NIL.
(DEFUN FIND (OBJ LST TEST)
( (ATOM LST) NIL)
R
T
\x0153
\x00B4
LL TEST)
(SETQ TEST 'EQL) ) )
( (FUNCALL TEST JBJ (CAR LST))
(CAR LST) )
(FIND OBJ (CDR LST) TEST) )
$ (FIND 'EAT '(CORN WHEAT OATS RICE) 'FINDSTRING)
WHEAT
$ (FIND-IF '(LAMBDA (X) (MINUSP (CDR X))) '((X . 3) (Y . 0) 9Z . -2/3)))
(Z . -0.6666666)
8. (POSITION object list test). Виконує лінійний пошук у списку list того елемента, для якого ознака порівняння з об’єктом object за тестом test не є NIL. Якщо тест-аргумент дорівнює NIL або не задан, POSITION використовує EQL-тест.
(POSITION-IF test list). Шукає у списку list елемент, для якого ознака перевірки за тестом не є NIL.
Для обох функцій, якщо елемент, що задовольняє тесту, знайдено, повертається порядковий номер даного елемента, починаючи з 0. В іншому випадку повертається NIL.
(DEFUN POSITION (OBJ LST TEST)
(position-aux OBJ LST TEST 0) )
(DEFUN position-aux (OBJ LST TEST INDEX)
((ATOM LST) NIL)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
(FUNCALL TEST OBJ (CAR LST)) INDEX)
(position-aux OBJ (CDR LST) TEST (ADD1 INDEX)
$ (POSITION '(A B C) '((R S T) (C A B) (A B C)))
NIL
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021