Матеріал:

Функціональне програмування

docx
15.01.2025
0 0
III курс

188

6

1

1

Завантажити файл у хорошій якості

Усі придбані матеріали можна знайти в розділі мої придбані матеріали

Опис методичного матеріалу:

Функціональне програмування — парадигма програмування, де все є функцією, а побічні ефекти чітко відокремлені від логіки обчислень.

 Програму можна уявити як функцію, яка має параметри та обчислює результат на основі цих параметрів.

 Функціональне програмування є декларативним — програміст визначає, що програма повинна робити, але не визначає, як це робити.

 Одна з визначальних властивостей функціонального програмування — усі структури даних незмінні.

 Незмінність стану усуває всі умови змагання: між потоками немає спільного змінного стану.

Функція чиста, коли вона не має побічних ефектів. Побічний ефект — будь-яка модифікація або перевірка зовнішнього стану. Функція, яка читає з файлу, не є чистою, оскільки її результат залежить від вмісту файлу. Чисті функції завжди повертають той самий результат, якщо передано однакові параметри. Вони завжди створюють той самий вихід для даного входу і не змінюють глобальний стан. Чисті функції ідеально підходять для розпаралелювання, оскільки між викликами немає залежностей або спільного стану.

Нечисті функції - це функція, яка містить один або кілька побічних ефектів. Якщо програма не має нечистих функцій, нічого не буде виконано.

Функція виконується лише тоді, коли дійсно потрібен її результат. Результат потрібен, якщо він використовується з нечистої функції, наприклад. наприклад, записує у файл

Чисто функціональні мови програмування: Haskell, Idris, Elm.

Нечистофункціональні мови програмування: Scala, Elixir, F#.

Ліниве оцінювання є властивістю декларативного програмування: програму не потрібно виконувати в тому порядку, в якому вона була написана; не всі оператори повинні бути виконані.

Для списків використовуються три найпоширеніші операції:

• map — створюється новий список, у якому до кожного елемента застосовується функція та створюється новий список.

• фільтр — отримати підмножину списку з елементами, які відповідають критерію.

• зменшити — отримати скаляр зі списку шляхом застосування функції.

Розпаралелювання карт і операцій фільтрування: ці операції виконуються паралельно з даними, тобто кожен елемент може оброблятися незалежно.

• Розділіть колекцію вхідних даних на менші фрагменти.

• Обробляйте кожен шматок паралельно.

• Об’єднайте результати з усіх фрагментів.

Паралельність даних

• Для розподілу даних між потоками можна використовувати пул потоків.

• Коли пул запускається, створюється фіксована кількість потоків.

• Пулу потоків може бути призначено завдання, яке розділене самими потоками.

• Перевагою пулу потоків є те, що потоки можна повторно використовувати для кількох операцій і вони автоматично розподіляють завдання

Функціональний паралелізм

• Модель паралельності, коли всі потоки виконують різні операції з однаковими даними.

• Вирішує проблеми, коли над одними даними потрібно виконувати різні операції.

• Ми отримуємо прискорення, оскільки декілька дій виконуються паралельно.

Вміст матеріалу:

Відображення документу є орієнтовним і призначене для ознайомлення зі змістом, та може відрізнятися від вигляду завантаженого документа.

Доступ до плеєра. Вбудувати плеєр:

0.
docx
functional programming.docx
15,0 Кб
Завантажити файл у хорошій якості

Усі придбані матеріали можна знайти в розділі мої придбані матеріали

Рекомендуємо

Мова програмування. Середовище програмування

pptx
Мова програмування. Середовище програмування

428

Аватар профіля Лизько Валентина Степанівна
Інформатика
7 клас

35 грн

Поняття мови програмування. Складові мови програмування.

pptx
Поняття мови програмування. Складові мови програмування.

552

Аватар профіля Серебрій Крістіна Вікторівна
Інформатика
3—11 клас

50 грн

Мови програмування. Середовище програмування. Знайомство з Python

pptx
Мови програмування. Середовище програмування. Знайомство з Python

518

Аватар профіля Комок Ірина Вікторівна
Інформатика
7—8 клас

40 грн

Програмування

pdf
Програмування

48

Аватар профіля Місько Олена Олегівна
STEM-освіта
2—4 клас

32 грн

Урок 31 Поняття програмування. Мова програмування PYTHON

pdf
Урок 31 Поняття програмування. Мова програмування PYTHON

60

Аватар профіля Місько Євгеній Дмитрович
Інформатика
7 клас

34 грн

Приклади "Задачі з програмування"

pptx
Приклади "Задачі з програмування"

594

Аватар профіля Максімко Леся Дмитрівна
Інформатика
8—11 клас

20 грн

Схожі матеріали

Конспект уроку інформатики у 11 класі з теми "Структура веб-сайтів, різновиди веб-сайтів. Різновиди веб-сторінок. Етапи створення веб-сайтів"

doc
Конспект уроку інформатики у 11 класі з теми "Структура веб-сайтів, різновиди веб-сайтів. Різновиди веб-сторінок. Етапи створення веб-сайтів"

6237

Аватар профіля Озарчук Андрій Валерійович
Інформатика
11 клас

Виконання розрахунків у електронних таблицях

doc
Виконання розрахунків у електронних таблицях

3465

Аватар профіля Krasnova Elena
Інформатика
7 клас

Навчання майбутнього вже сьогодні: гейміфікація, програмування, робототехніка

pdf
Навчання майбутнього вже сьогодні: гейміфікація, програмування, робототехніка

704

Аватар профіля Краснянська Тетяна Володимирівна
Інформатика

Посібник із цифрового громадянства й безпеки "Обачність Пильність Захист Ввічливість Сміливість"

pdf
Посібник із цифрового громадянства й безпеки "Обачність Пильність Захист Ввічливість Сміливість"

350

Аватар профіля Сімейкіна Тетяна Іванівна
Інформатика
1—5 клас

Курс із мережевого етикету й безпеки

pdf
Курс із мережевого етикету й безпеки

355

Аватар профіля Сімейкіна Тетяна Іванівна
Інформатика
2—11 клас

Використання елементів навчально-дослідницької діяльності на уроках інформатики

doc
Використання елементів  навчально-дослідницької діяльності  на уроках інформатики

2318

Аватар профіля Озарчук Андрій Валерійович
Інформатика