Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Функції конструктора

Тип Реферат
Предмет Астрономия
Просмотров
746
Размер файла
19 б
Поделиться

Ознакомительный фрагмент работы:

Функції конструктора

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

Функції конструктора


muLISP-програми можуть автоматично генерувати нові структури даних, використовуючи функції конструктора. Ці функції можуть утворювати бінарні дерева або зв’язні списки, які моделюють структури даних практично для довільної задачі.

1. (CONS object list). Ця функція конструктора є примітивною функцією та була розглянута раніше у параграфі 2.2.

2. (ACONS key object alist). Утворює пару (ключ . обьект), розташовує її на початку асоциативного списку alist та повертає результуючий асоциативний список. ACONS спрощує процес утворення асоциативних списків.

(DEFUN ACONS (KEY OBJ ALIST)

(CONS (CONS KEY OBJ) ALIST) )

$ (ACONS 'EYES 'BLUE '((WEIGTH . 170) (HEIGTH . 72)))

((EYES . BLUE) (WEIGTH . 170) (HEIGTH . 72))

3. (LIST object1 object2 ... objectn). Утворює та видає список, який складається з елементів від об’єкта object1 по об’єкт objectn. Якщо функція викликана без аргументів, то LIST повертає ознаку NIL. LIST може працювати з будь-якою кількістю аргументів.

(DEFUN LIST LST

((NULL LST) NIL)

(CONS (CAR LST) (APPLY 'LIST (CDR LST))) )

$ (LIST 'A 'B 'C 'D) $ (LIST 'A '(B C) 'D)

(A B C D) (A (B C) D)

$ (LIST)

NIL

4. (LIST* object1 object2 ... objectn). Пов’язує у пару об’єкти object1, object2, ... та objectn і видає результуючий об’єкт. Якщо функція викликається з єдиним аргументом, LIST* повертає цей аргумент.

(DEFUN LIST* LST

((NULL LST) NIL)

((NULL (CDR LST))

(CAR LST) )

(CONS (CAR LST) (APPLY 'LIST* (CDR LST))) )

$ (LIST* 'A 'B 'C 'D) $ (LIST* 'A 'B '(C D))

(A B C . D) (A B C D)

$ (LIST* 'DOG)

DOG

5. (APPEND list1 list2 ... listn). Утворює та повертає список, який складається з елементів списків, починаючи зі списку list1 та по список listn. APPEND копіює cons-и верхнього рівня кожного зі своїх аргументів, окрім останнього. Якщо функція викликається з єдиним аргументом, APPEND повертає цей аргумент без його копіювання. Отже, для копіювання списку краще використовувати COPY-LIST, ніж APPEND.

Відмітимо, що якщо APPEND та NCONC, о якій буде сказано далі, мають однакові аргументи, вони повертають, як правило, одинакові списки. Але APPEND використовує cons-и для копіювання усіх, окрім останнього, аргументів, тоді як NCONC фактично модифікує усі аргументи, окрім останнього.

(DEFUN APPEND (LST1 LST2)

((ATOM LST1) LST2)

(CONS (CAR LST1) (APPEND (CDR LST1) LST2)) )

$ (SETQ FOO '(D E F))

(D E F)

$ (APPEND '(A B C) FOO '(G H I)) $ (APPEND '(I U) 'T 'R 'E '(O I))

(A B C D E F G H I) (I U O I)

$ FOO $ (APPEND '(A B C D) 'E 'F 'G)

(D E F) (A B C D . G)

6. (COPY-LIST list). Копіює cons-и верхнього рівня списку list та повертає список, еквівалентний (тобто рівний – EQUAL) списку list.

(DEFUN COPY-LIST (LST)

((ATOM LST) LST)

(CONS (CAR LST) (COPY-LIST (CDR LST))) )

$ (COPY-LIST '(A B (C . D) E)) $ (COPY-LIST '(A B C . D))

(A B (C . D) E) (A B C . D)

7. (COPY-TREE object). Копіює cons-и верхнього рівня об‘єкту object та повертає об‘єкт, еквівалентний object.

(DEFUN COPY-TREE (OBJ)

((ATOM OBJ) OBJ)

(CONS (COPY-TREE (CAR OBJ)) (COPY-TREE (CDR OBJ))) )

$ (COPY-TREE '(A B (C . D) E)) $ (COPY-TREE '(A B C . D))

(A B (C . D) E) (A B C . D)

8. (FIRSTN n list). Якщо n - додатне ціле, функція копіює та повертає перші n елементів списку. FIRSTN повертає NIL, якщо n - недодатне ціле. Якщо список має n або більше елементів, FIRSTN копіює та повертає елементи списку.

(DEFUN FIRSTN (N LST)

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

((ATOM LST) NIL)

(CONS (CAR LST) (FIRSTN (SUB1 N) (CDR LST))) ) )

$ (FIRSTN 0 '(SUE JOE ANN BOB)) $ (FIRSTN 2 '(A B . C))

NIL (A B)

$ (FIRSTN 2 '(SUE JOE ANN BOB)) $ (FIRSTN 3 '(A B . C))

(SUE JOE) (A B)

$ (FIRSTN 4 '(SUE JOE ANN BOB))

(SUE JOE ANN BOB)

$ (FIRSTN 5 '(SUE JOE ANN BOB))

(SUE JOE ANN BOB)

9. (BUTLAST list n). Якщо n - ноль або додатне ціле, функція копіює та повертає усе, окрім n останніх елементів списку list. Якщо n пропущено чи рівне нулю, чи не є додатним цілим, BUTLAST копіює та повертає усе, окрім останнього, елементи списку.

(DEFUN BUTLAST (LST N)

((AND (INTEGERP N) (>=N 0))

(FIRST (-(LENGTH LST) N) LST) )

(BUTLAST LST 1) )

$ (BUTLAST '(A B C D)) $ (BUTLAST '(A B C D) 2)

(A B C) (A B)

10. (REMOVE item list test). Повртає копію списку list з усіма елементами, окрім тих, які при перевірці за тестом test мають ознаку не NIL та видаляються (тобто (test item element) не дорівнює NIL).

Якщо тест-аргумент дорівнює NIL або не задан, REMOVE використовує EQL-тест.

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

(DTFUN REMOVE (ITEM LST TEST)

((ATOM LST) LST)

( ((NULL TEST)

(SETQ TEST 'EQL) ) )

(LET ( (COPY (REMOVE ITEM (CDR LST) TEST)) )

((FUNCALL TEST ITEM (CAR LST)) COPY)

((EQ COPY LST) LST)

(CONS (CAR LST) COPY) ) )

$ (REMOVE '(2 5) '((5 2) (2 5) (2 3)) 'EQUAL)

((5 2) (2 3))

$ (REMOVE-IF 'MINUSP '(-2 0 7 -0.1 3))

(0 7 3)

11. (REVERSE list object). Утворює та видає список, який складається з елементів списку list, але в оберненому порядку. Функція видає елементи списку в оберненому порядку, приєднані до об’єкту object. Результат є таким, як і при роботі функції (APPEND (REVERSE list) object), але виклик REVERSE в якості другого аргумента є більш ефективним.

(DEFUN REVERSE (LST OBJ)

((ATOM LST) OBJ)

(REVERSE (CDR LST) (CONS (CAR LST) OBJ))) )

$ (REVERSE '(A B C D E))

(F D C B A)

$ (REVERSE '(A B C) '(D E F)) $ (REVERSE '(A B C) 'D)

(C B A D E F) (C B A . D)

12. (SUBSTITUTE new old list test). Повертає копію високого рівня списку list, замінюючи на нові new елементи ті старі old елементи списку, для яких ознака перевірки за тестом test не дорівнює не NIL. Якщо тест-аргумент дорівнює NIL або не задан, SUBSTITUTE використовує EQL-тест.

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

(DEFUN SUBSTITUTE (NEW OLD LST TEST)

((ATOM LST) LST)

( (NULL TEST)

(SETQ TEST 'EQL) ) )

((FUNCALL TEST OLD (CAR LST))

(CONS NEW (SUBSTITUTE NEW OLD (CDR LST) TEST)) )

((SETQ NEW (SUBSTITUTE NEW OLD (CDR LST) TEST))

((EQ NEW (CDR LST)) LST)

(CONS (CAR LST) NEW) )

$ (SUBSTITUTE 5 2 '(4 2 (3 . 2) 4))

(4 5 (3 . 2) 4)

$ (SUBSTITUTE 'CANNIBALS 'NOUN '(NOUN LIKE TO EAT NOUN) )

(CANNIBALS LIKE TO EAT CANNIBALS)

13. (SUBST new old object test). Повертає копію об’єкта object, замінюючи на нові new усі старі old підвирази об’єкта, для яких ознака перевірки за тестом test не дорівнює NIL. Якщо тест-аргумент дорівнює NIL або не задан, SUBST використовує EQL-тест.

(SUBST-IF new test object). Повертає копію високого рівня об’єкта object, замінюючи на нові new елементи усі підвирази об’єкта, для яких ознака перевірки за тестом не є NIL.

(DEFUN SUBST (NEW OLD OBJ TEST)

( (NULL TEST)

(SETQ TEST 'EQL) ) )

((FUNCALL TEST OLD OBJ) NEW)

((ATOM OBJ) OBJ)

(LET ( (LEFT (SUBST NEW OLD (CAR OBJ) TEST))

(RIGHT (SUBST NEW OLD (CDR OBJ) TEST)) )

((AND (EQ LEFT (CAR OBJ)) (EQ RIGHT (CDR OBJ)))

OBJ )

(CONS LEFT RIGHT) ) )

$ (SUBST 5 2 '(4 2 (3 . 2) 4))

(4 5 (3 . 5) 4)


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно