.

Функції відбору (реферат)

Язык: украинский
Формат: реферат
Тип документа: Word Doc
0 1092
Скачать документ

Реферат на тему:

Функції відбору

1. (CAR list), (CDR list). Ці функції відбору (селекторні функції) є
примітивними функціями, та були розглянуті раніше. Також було показано
як утворити похідні від них функції типу CXXXXR, де X ? {A, D, ?}, при
чому між літерами C та R знаходиться хоча б одна літера A чи D.

2. (LAST list) повертає останній на верхньому рівні cons списку list.
Відмітимо, що LAST повертає останній cons, але не останній елемент
списку. Якщо список є атом, LAST повертає NIL. Останній елемент можна
отримати використанням функції CAR від (LAST list).

(DEFUN LAST (LST)

((ATOM LST) NIL)

((ATOM (CDR LST)) LST)

(LAST (CDR LST)) )

$ (LAST ‘(A B C D)) $ (LAST ‘FCO)

(D) NIL

$ (LAST ‘(A B C . D)) $ (CAR (LAST ‘(A B C)))

(C . D) C

3. (NTHCDR n list). Якщо n – ноль або додатне ціле, функція повертає
n-й CDR списку list. NTHCDR повертає NIL, якщо n не є ані 0, ані
додатне ціле, або якщо список list має n або меньш елементів.

(DEFUN NTHCDR (N LST)

((ZEROP N) LST)

((AND (INTEGERP N) (PLUSP N))

((ATOM LST) NIL)

(NTHCDR (SUB1 N) (CDR LST)) ) )

$ (NTHCDR 0 ‘(A B C D)) $ (NTHCDR 5 ‘(A B C D))

(A B C D) NIL

$ (NTHCDR 1 ‘(A B C D)) $ (NTHCDR 2 ‘(A B . C))

(B C D) C

$ (NTHCDR 2 ‘(A B C D))

(C D)

4. (NTH n list). Якщо n – ноль або додатне ціле, функція повертає n-й
елемент списку list, де CAR списку – нульовий елемент. NTH повертає
NIL, якщо n не є ані 0, ані додатне ціле, або якщо список має n або
меньш елементів.

(DEFUN NTH (N LST)

((ATOM (NTHCDR N LST)) NIL)

(CAR (NTHCDR N LST)) )

$ (NTH 0 ‘(A B C D)) $ (NTH 4 ‘(A B C D))

A NIL

$ (NTH 3 ‘(A B C D)) $ (NTH 2 ‘(A B . C))

D NIL

5. (SUBLIST list n m). Якщо n та m – невід’ємні цілі та n m, SUBLIST
повертає NIL.

(DEFUN SUBLIST (LST N M)

((INTEGERP N)

((INTEGERP M)

(FIRST (ADD1 (-M N)) (NTHCDR N LST)) )

(NTHCDR N LST) ) )

$ (SUBLIST ‘(A B C D E F) 2 4) $ (SUBLIST ‘(A B C D E F) 0 3)

(C D E) (A B C D)

$ (SUBLIST ‘(A B C D E F) 2 2) $ (SUBLIST ‘(A B C D E F) 2)

(C) (C D E F)

6. (COUNT object list test). Повертає кількість елементів у списку
list, для яких ознака при порівнянні з об’єктом object за тестом test
не дорівнює NIL. Якщо тест – аргумент не задано або дорівнює NIL, COUNT
використовує EQL – тест.

(COUNT-IF test list). Повертає кількість елементів у списку list, для
яких ознака перевірки за тестом не дорівнює NIL.

(DEFUN COUNT1 (OBJ LST TEST)

(count-aux OBJ LST TEST 0) )

(DEFUN count-aux (OBJ LST TEST COUNTER)

((ATOM LST) COUNTER)

( ((NULL TEST)

(SETQ TEST ‘EQL) ) )

((FUNCALL TEST OBJ (CAR LST))

(count-aux OBJ (CDR LST) TEST (ADD1 COUNTER)) )

(count-aux OBJ (CDR LST) TEST COUNTER) )

$ (COUNT ‘DOG ‘(CAT DOG COW PIG DOG ANT))

2

$ (COUNT ‘5 ‘(4 5 6 7 8)

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Оставить комментарий

avatar
  Подписаться  
Уведомление о
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020