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) Асоциативним списком називається список пар (тобто cons-ів), які використовуються у muLISP для зв’язку ключа та об’єкта. Функції ASSOC та ASSOC-IF належать класу функцій відбору, які дають можливість отримати доступ до об’єкта, пов’язаному з ключем, який задовольняє тесту.
9. (ASSOC key alist test). Виконує лінійний пошук в асоциативному списку пари, для якої при порівнянні її CAR- елемента з ключем key за тестом test ознака не дорівнює NIL. Якщо тест-аргумент дорівнює NIL або не задан, ASSOC використовує EQL-тест.
(ASSOC-IF test alist). Шукає в асоциативному списку пару, для якої ознака перевірки її CAR - елемента за тестом не є NIL.
Для обох функцій, якщо пара, що задовольняє тесту, знайдена, ця пара выдається, інакше повертається 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) )
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
((FUNCALL TEST KEY (CDAR ALIST))
(CAR ALIST) )
(RASSOC KEY (CDR ALIST) YEST) )
$ (RASSOC 'PARIS CAPITALS)
(FRANCE . PARIS)
$ (RASSOC 'CANBERRA CAPITALS)
NIL
Рефераты по информатике1. (CAR list), (CDR list). Ці функції відбору (селекторні функції) є примітивними функціями, та були розглянуті раніше. Також було показано як
Оценок: 425 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.