20230807195654 #учу/ФП
- "Функцiональне програмування" - "Функциональное программирование" (ФП)
- [[ФП - Лаб-1]]
- [[ФП - Лаб-1+]]
- При оформленні Звіту про виконання лабораторної роботи – доцільно дотримуватись приблизно такого формату присвоєння імені файлу:
- ФП_Прізвище Ім'я_КІУКІ-20-6_лаб1234
- Приблизно там може називатися файл Звіту або директорія, де містяться сам Звіт та супроводжуючі матеріали.
- Ознайомлення з мовою та освоєння типових прийомів роботи мовою функціонального програмування Haskell, на прикладі програмного продукту HaskellPlatform:
- ознайомлення з інтерфейсом;
- освоєння базових положень синтаксису:
- типи даних та найпростіші операції над ними,
- списки та кортежі,
- робота з функціями;
- отримання досвіду діалогового налагодження елементів програми.
1 - Вивчення роботи з мовою функціонального програмування Haskell, на прикладі програмного продукту HaskellPlatform, проводиться на ПЕОМ IBM PC AT під операційною системою WINDOWS не нижче XP. 2 - Як програмний засіб, використовується програмний продукт HaskellPlatform 3 - Фіксація результатів (проміжних станів, що виникають при вивченні інтерфейсу та базових положень синтаксису, а так само в процесі налагодження, здійснюється перенесенням вибраного фрагмента діалогового вікна в текстовий редактор, з коментуванням монтажем тексту в Звіт про виконання лабораторної роботи. 4 - При підготовці до лабораторної роботи рекомендується ознайомитися з базовими поняттями по темі в обсязі начитаного лекційного матеріалу.
1 - Ознайомитися з цими Методичними вказівками. 2 - Запустити програму Haskell Platform. Освоїтися з роботою у вікні програми, в цілому аналогічному роботі з командним рядком в ОС. 3 - Ознайомитися з синтаксисом та елементами мови, використовуючи матеріал [[ФП - Лаб-1+]] в обсязі перших трьох пунктів: 1 - Примітивні типи та найпростіші операції над ними; 2 - Списки та Кортежі; 3 - Функції.
- Активізувати роботу із зазначеними елементами та конструкціями.
- Загалом, матеріал [[ФП - Лаб-1+]] переважно розглядався (коментувався) на лекціях. 4 - Найпростіший варіант ознайомлення та активізації роботи із зазначеним матеріалом (п. 3), - копіювання відповідних прикладів (фрагментів) з Додатка та подальше налагодження їх.
- Більш просунутий варіант - використання прикладів з [[ФП - Лаб-1+]] виключно як зразків, підстановка своїх значень примітивів, свого заповнення списків та кортежів, своїх (оригінальних) прикладів визначення функцій.
- Ще більш просунутий варіант - не обмежуватися одним лише розглядом прикладів, але самостійно вигадувати зв'язані прикладні контексти, в рамках яких об'єднувати кілька структурних елементів.
- Вітається (і відповідно оцінюється при здачі лабораторної роботи) самостійність, оригінальність мислення, творчий нестандартний підхід та інші прояви самобутності програмістської індивідуальності. 5 - Оформити Звіт про виконання лабораторної роботи. 6 - Підготовка до захисту лабораторної роботи. Рекомендується опрацювати контрольні питання. 7 - Захист виконаної роботи.
- Звіт з лабораторної роботи повинен містити:
- мета роботи,
- покроковий опис її виконання,
- зведення отриманих результатів,
- їх аналіз та
- змістовні висновки.
- Висновки, щоб бути змістовними, можуть включати виявлені (відзначені) студентом цікаві особливості, зауваження про незвичайне застосування, оригінальні думки про прикладне використання, можливі помічені помилки або невідповідності та ін.
- Звіт має бути оформлений у текстовому редакторі, можливо, з додатком ілюстрацій, отриманих комп'ютерним способом у процесі виконання роботи.
1 - Що таке функціональне програмування? Відмінності від імперативного програмування. 2 - Чи допустимо в функціональному програмуванні використання змінних? 3 - У якому сенсі в функціональному програмуванні відсутні перемінні? 4 - Чи може функціональне програмування бути реалізовано засобами імперативних мов програмування? 5 - З урахуванням можливості реалізації функціонального програмування засобами імперативних мов, у чому полягає специфіка та призначення мови Haskеll? 6 - ☀️ Програмний продукт Haskell Platform, що використовується в лабораторній роботі, викладений у вихідниках у директорії, поряд із Методичними вказівками. Як рекомендоване домашнє завдання, його можна завантажити і встановити на своєму домашньому комп'ютері. Можливо, це розширить перспективи з освоєння Haskell (ознайомлення у просунутому варіанті - див. п. 4 вище), або (а також) при роботі над питаннями п.п. 7* та 8* (див. нижче) при підготовці до захисту лабораторної роботи (див. (п. 6) вище). 7 - ☀️ Чи можете ви запропонувати як приклад якийсь зв'язковий прикладний контекст, в якому могли б використовуватися комбінації розглянутих у лабораторній роботі конструкцій мови Haskell? 8 - ☀️ Як може виглядати Haskell-програма, яка зведе на друк структуру останнього блоку вірша С.Я. Маршака «Дом, которный построил Джек»?