- Saved searches
- Use saved searches to filter your results more quickly
- License
- SorCube/IU7-Functional-Programming
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Saved searches
- Use saved searches to filter your results more quickly
- License
- Avvessalom/itmo-functional-programming
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Функциональное программирование Введение
- Лабораторная работа № 1.
- Лабораторная работа № 2.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Лабораторные работы по курсу «Функциональное программирование», ИУ7 2021г.
License
SorCube/IU7-Functional-Programming
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Лабораторные работу по курсу «Функциональное программирование», ИУ7 2021г.
Список лабораторных работ
ЛР | Тема | Код | Отчёт | Сдано |
---|---|---|---|---|
1 | Списки в Lisp. Использование стандартных функций. | — | Отчёт | ✔️ |
2 | Определение функций пользователя | Код | Отчёт | ⭕️ |
3 | Работа интерпретатора Lisp | Код | Отчёт | ⭕️ |
4 | Использование управляющих структур, работа со списками | Код | Отчёт | ⭕️ |
5 | Код | Отчёт | ⭕️ | |
6 | Код | Отчёт | ⭕️ | |
7 | Использование управляющих структур, модификация списков | Код | Отчёт | ⭕️ |
8 | Использование функционалов | Код | Отчёт | ⭕️ |
9 | Использование функционалов и рекурсии | ❌ | ||
10 | Вложенные рекурсия и функционалы | ❌ |
✔️ — выполнено, ⭕️ — ожидает проверки, ❌ — не готово
About
Лабораторные работы по курсу «Функциональное программирование», ИУ7 2021г.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Лабораторные работы по функциональному программированию (ИТМО, ПИиКТ-СиППО, 4 курс).
License
Avvessalom/itmo-functional-programming
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Цель: освоить базовые приёмы и абстракции функционального программирования: функции, поток управления и поток данных, сопоставление с образцом, рекурсия, свёртка, отображение, работа с функциями как с данными, списки. В рамках лабораторной работы вам предлагается решить несколько задач проекта Эйлер. Список задач – ваш вариант. Для каждой проблемы должно быть представлено несколько решений:
- монолитные реализации с использованием:
- хвостовой рекурсии;
- рекурсии (вариант с хвостовой рекурсией не является примером рекурсии);
Требуется использовать идиоматичный для технологии стиль программирования.
Цель: освоиться с построением пользовательских типов данных, полиморфизмом, рекурсивными алгоритмами и средствами тестирования (unit testing, property-based testing). В рамках лабораторной работы вам предлагается реализовать одну из предложенных классических структур данных (список, дерево, бинарное дерево, hashmap, граф. ). Требования:
- Функции:
- добавление и удаление элементов;
- фильтрация;
- отображение (map);
- свертки (левая и правая);
- структура должна быть моноидом.
- Структуры данных должны быть неизменяемыми. Если язык допускает изменение данных – необходимо это протестировать.
- Реализованные функции должны быть встроены/совместимы со стандартными интерфейсами/библиотекой.
- Библиотека должна быть протестирована в рамках unit testing.
- Библиотека должна быть протестирована в рамках property-based тестирования (как минимум 3 свойства).
- Структура должна быть полиморфной.
- Требуется использовать идиоматичный для технологии стиль программирования.
About
Лабораторные работы по функциональному программированию (ИТМО, ПИиКТ-СиППО, 4 курс).
Функциональное программирование Введение
Методические указания к выполнению лабораторных работ по дисциплине «Функциональное программирование» предназначены для студентов третьего курса специальности 220400. Данные методические указания содержат:
- перечень теоретических вопросов, которые должны быть разъяснены преподавателем ведущим лабораторные занятия;
- практические задания, которые должны быть разобраны и выполнены под руководством преподавателя;
- практические задания для самостоятельной работы.
Лабораторная работа № 1.
- Знакомство со средой ЛИСП (загрузить, закончить работу).
- Функция (setq . ), функция (eql . ), арифметические и логические операции («+». «-» ,»*», «/», «», «=»,»and», «or», «not»), префиксная форма записи выражений в среде ЛИСП.
- Использование оператора (if . ).
- Определение и вызов функции пользователя ((defun . )).
- Использование рекурсии.
- Трассировка.
- Вызов функции записанной и сохраненной в текстовом файле ((load ‘*.lsp)).
- Определите функцию, аргументами которой являются три числа и которая возвращает значение True если первое число принадлежит интервалу ограниченному следующими двумя числами. В противном случае — функция возвращает значение NIL.
- Завершите работу в среде ЛИСП, после чего наберите и сохраните текст функции из задания 1 в файле с расширением .lsp. Повторно войдите в среду, загрузите файл с сохраненным текстом функции, вызовите функцию.
- Определите функцию возвращающую сумму чисел от 1 до n. Осуществите трассировку написанной функции, рассмотрите результаты трассировки.
- Определите функцию возводящую число a в степень n.
- Определите функцию возвращающую значение факториала числа n.
Лабораторная работа № 2.
- Списки. Простейшие функции работы со списками ((car . ), (cdr . ), (cons . ), (null . )).
- Определите функцию возвращающую количество элементов в списке
- Определите функцию возвращающую минимальный/максимальный элемент списка.
- Определите функцию удаляющую из списка l все элементы равные k.
- Определите функцию удаляющую из списка l n-й элемент. Первым элементом списка считается голова списка.
- Повторите задание 4 для списка с обратной нумерацией.
- Определите функцию добавляющую в список l элемент k в качестве n-го элемента. Первым элементом считается голова списка.
- Повторите задание 6 для списка с обратной нумерацией элементов.
- Определите функцию моделирующую «детскую считалочку». В кругу стоит n человек имеющих разные имена, в «считалочке» m слов. Функция должна возвращать последовательность выбывания игроков из круга.