diff --git a/lab 5/README.md b/lab 5/README.md index d82f645..8b3412a 100644 --- a/lab 5/README.md +++ b/lab 5/README.md @@ -1,18 +1,36 @@ -# Лабораторная работа 5 +# Лабораторная работа 5: Функциональное программирование на F# ## Описание -Этот проект содержит решение задач пятой лабораторной работы по функциональному программированию на F#. +Этот проект содержит набор программ, демонстрирующих основные концепции функционального программирования на языке F#. Каждая программа представляет собой отдельный пример, иллюстрирующий определенную технику или подход. -## Цели проекта +## Примеры программ +1. **HelloWorld** - Простой пример вывода "Привет, мир!" на F# +2. **QuadraticEquation** - Решение квадратного уравнения с использованием сопоставления с образцом +3. **CircleAndCylinder** - Расчет площади круга и объема цилиндра, демонстрирует суперпозицию и каррирование +4. **NumberOperations** - Вычисление суммы цифр числа с использованием рекурсии +5. **RecursionTypes** - Демонстрация различных типов рекурсии (вверх, вниз, хвостовая) +6. **FunctionFactory** - Создание функций во время выполнения (функции как значения) +7. **NumberTraversal** - Обход цифр числа с различными операциями (сумма, произведение, минимум, максимум) +8. **LambdaTraversal** - Использование лямбда-выражений для обработки цифр числа +9. **ConditionalTraversal** - Условный обход цифр числа с использованием предикатов +10. **NumberExamples** - Практические примеры работы с цифрами числа и композицией условий -## Запуск проекта +## Запуск программ ### Локально +Для запуска отдельной программы: + ```bash -cd "lab 5" +cd "lab 5/<название_программы>" +dotnet run +``` + +Например: +```bash +cd "lab 5/HelloWorld" dotnet run ``` @@ -26,4 +44,13 @@ make lab5-docker-run ## Требования - .NET 8.0 SDK или выше -- Docker (optional) +- Docker (опционально) + +## Задачи лабораторной работы + +- Изучение основ функционального программирования на F# +- Применение рекурсии и хвостовой рекурсии +- Работа с функциями высшего порядка +- Использование лямбда-выражений +- Понимание каррирования и частичного применения функций +- Применение сопоставления с образцом (pattern matching)