Главная страница
Навигация по странице:

  • ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра автоматизации обработки информации (АОИ)РАЗРАБОТКА ПРОГРАММЫ

  • С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ЛИСП

  • Функ и лог программирование. отчет. Отчет по лабораторной работе по дисциплине Функциональное и логическое программирование


    Скачать 18.3 Kb.
    НазваниеОтчет по лабораторной работе по дисциплине Функциональное и логическое программирование
    АнкорФунк и лог программирование
    Дата05.10.2022
    Размер18.3 Kb.
    Формат файлаdocx
    Имя файлаотчет.docx
    ТипОтчет
    #716130

    Министерство науки и высшего образования Российской Федерации
    Федеральное государственное бюджетное образовательное

    учреждение высшего образования
    ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

    СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
    Кафедра автоматизации обработки информации (АОИ)


    РАЗРАБОТКА ПРОГРАММЫ

    С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ЛИСП
    Отчет по лабораторной работе по дисциплине

    «Функциональное и логическое программирование»



    Студент гр. _____________

    __________ /_____________/

    (подпись) (Ф. И. О.)

    «____»___________ 20__ г.



    Преподаватель

    канд. техн. наук, доцент кафедры АОИ

    __________ / Н. Ю. Салмина /

    (подпись) (И. О. Фамилия)

    «____»___________ 20__ г.

    Томск 2022

    Оглавление


    1 Цели и задачи работы 3

    2 Основная часть 4

    2.1 Задание 4

    2.2 Решение 4

    3 Выводы 6

    Список использованных источников 7


    1 Цели и задачи работы


    Выполнение лабораторной работы по данной дисциплине имеет целью закрепление теоретического материала, получение навыков в функциональном программировании с использованием языка Лисп.

    2 Основная часть



    2.1 Задание


    1. Задание состоит из трех задач, в которых необходимо составить программы на Лиспе.

    В первой задаче требуется применение простой рекурсии. При составлении программ (если не оговорено противное) можно использовать все встроенные функции Лиспа. Отладку программ можно осуществлять с помощью функции трассировки (trace <имя функции>), для отключения трассировки функции используйте (untrace <имя функции>).

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

    В третьей задаче требуется использовать функционалы. При составлении программ (если не оговорено противное) можно использовать все встроенные функции языка Лисп. Тексты всех программ, если вы мыслите в духе функционального программирования, буквально состоят из нескольких строчек.

    Вариант 3

    1. Напишите функцию, вычисляющую последний элемент списка.

    2. Напишите функцию, которая делает из списка множество, т. е. удаляет все повторяющиеся элементы.

    3. Напишите функцию (exists p x), которая проверяет, существует ли элемент списка x, удовлетворяющий предикату p (p – функция или функциональное имя).

    2.2 Решение


    Решение задачи 1

    (defun lst(x)

    (cond

    ((null x) nil)

    ((null (cdr x)) (car x))

    (t (lst (cdr x)))))

    > (lst '(a b c d))

    D

    Решение задачи 2

    (defun toset(x)

    (cond

    ((null x) x)

    ((member (car x) (cdr x)) (toset (cdr x)))

    (t (cons (car x) (toset (cdr x))))))

    > (toset '(a g b h s w j f w b s u))

    (A G H J F W B S U)

    Решение задачи 3

    (defun exists(p x)

    (cond

    ((null x) nil)

    ((funcall p (car x)) t)

    (t (exists p (cdr x)))))

    > (exists 'zerop '(6 5 4 2 1 0 9))

    T

    > (exists 'zerop '(6 5 4 2 1 4 9))

    NIL

    3 Выводы


    В процессе выполнения данной работы были получены практические навыки в решении задач по функциональному программированию с использованием языка Лисп. Все поставленные задачи решены.

    Список использованных источников


    1. Салмина, Н. Ю. Функциональное программирование и интеллектуальные системы : учеб. пособие / Н. Ю. Салмина. – Томск : ФДО, ТУСУР, 2016. – 100 с.

    2. Зюзьков, В. М. Функциональное программирование : учеб. пособие / В. М. Зюзьков. – Томск : Томский межвузовский центр дистанционного образования, 2005. – 140 с.

    3. Зюзьков, В. М. Логическое и функциональное программирование : учеб.-метод. пособие / В. М. Зюзьков. – Томск : Томский межвузовский центр дистанционного образования, 2000. – 72 с.


    написать администратору сайта