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

Функції відбору
Тип документу: Реферат
Сторінок: 5
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 6.8
Скачувань: 832
$ (POSITION '(A B C) '((R S T) (C A B) (A B C)) 'EQUAL)

2

$ (POSITION-IF 'PLUSP '(-2.5 0 3.7 -5.3))

2

Асоциативним списком називається список пар (тобто cons-ів), які використовуються у muLISP для зв’язку ключа та об’єкта. Функції ASSOC та ASSOC-IF належать класу функцій відбору, які дають можливість отримати доступ до об’єкта, пов’язаному з ключем, який задовольняє тесту.

9. (ASSOC key alist test). Виконує лінійний пошук в асоциативному списку пари, для якої при порівнянні її CAR- елемента з ключем key за тестом test ознака не дорівнює NIL. Якщо тест-аргумент дорівнює NIL або не задан, ASSOC використовує EQL-тест.

(ASSOC-IF test alist). Шукає в асоциативному списку пару, для якої ознака перевірки її CAR - елемента за тестом не є NIL.

Для обох функцій, якщо пара, що задовольняє тесту, знайдена, ця пара выдається, інакше повертається NIL.

(DEFUN ASSOC (KEY ALIST TEST)

((ATOM ALIST) NIL)

((ATOM (CAR ALIST))

(ASSOC KEY (CDR ALIST) TEST) )

( ((NULL TEST)

(SETQ TEST 'EQL) ) )

((FUNCALL TEST KEY (CAAR ALIST))

(CAR ALIST) )

(ASSOC KEY (CDR ALIST) TEST) )

$ (SETQ CAPITALS ‘((USA . WASHINGTON) (FRANCE . PARIS) (JAPAN . TOKYO)))

$ (ASSOC 'FRANCE CAPITALS)

(FRANCE . PARIS)

$ (ASSOC 'AUSTRALIA CAPITALS)

NIL

10. (RASSOC key alist test). Виконує лінійний пошук в асоциативному списку пари, для якої при порівнянні її CDR- елемента з ключем key за тестом test ознака не дорівнює NIL. Якщо тест-аргумент дорівнює NIL або не задан, RASSOC використовує EQL-тест.

(RASSOC-IF test alist). Шукає в асоциативному списку пару, для якої ознака перевірки її CDR - елемента за тестом не дорівнює NIL.

Для обох функцій, якщо пара, що задовольняє тесту, знайдена, ця пара выдається, інакше повертається NIL.

RASSOC - це скорочення від Reverse ASSOCiate.

(DEFUN RASSOC (KEY ALIST TEST)

((ATOM ALIST) NIL)

((ATOM (CAR ALIST))

(RASSOC KEY (CDR ALIST) TEST) )

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