Функції відбору, Детальна інформація

Функції відбору
Тип документу: Реферат
Сторінок: 5
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 6.8
Скачувань: 829
(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

The online video editor trusted by teams to make professional video in minutes