Курс «PHP: Построение абстракций»

абстрации
рекурсия
функции высшего порядка
интерфейсы
присваивание
свёртка

Последнее обновление: 7 августа 2025 г.

Оформить подписку

3 900 рублей в месяц за все курсы

Включено в курс

20 уроков (видео и/или текст)
19 упражнений в тренажере
64 проверочных теста
Самостоятельная работа
Дополнительные материалы
Доступ ко всем курсам

Описание

На этом курсе вы познакомитесь с основами функционального программирования и понятием декларативного программирования. Вы узнаете, как использовать функции высшего порядка и работать с лямбда-функциями. Еще вы научитесь комбинировать функции, строить рекурсии с аккумулятором и оптимизировать хвостовую рекурсию. Также вы изучите структуры данных и научитесь использовать функции высшего порядка: map, filter и свертка. Вы познакомитесь с концепцией разделения программы на функциональные блоки и научитесь работать с общей структурой данных. В конце курса вы узнаете о присваивании и изменении состояния, а также о создании объектов. Вы рассмотрите преимущества и недостатки присваивания и сохранения состояния, чтобы лучше понимать, как использовать эти концепции в своих программах. Полученные знания помогут разрабатывать более эффективные и чистые программы. Этот курс является адаптацией под php знаменитого курса «Структура и интерпретация компьютерных программ», который преподается на первом курсе МИТ (Massachusetts Institute of Technology) с 70-х годов.

Чему вы научитесь

  • Применять функциональное и декларативное программирование
  • Создавать гибкие алгоритмы с помощью функции высшего порядка и лямбда-функции
  • Обрабатывать сложные задачи с помощью рекурсивных функций с аккумулятором
  • Улучшать читаемость, разделяя программу на модули и функциональные блоки
  • Обрабатывать коллекции данных с помощью структуры данных и функции высшего порядка

Программа

1

Введение

Знакомимся с курсом, декларативным программированием и других парадигмах

2

Hello World

Пишем свою первую программу и обсуждаем способы ее запуска

3

Абстракция с помощью функций

Знакомимся с литералами и выражениями, а так же приоритетом операций в них

4

Комбинирование функций

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

5

Линейно-рекурсивный процесс

Знакомимся с понятием вычислительных процессов и линейно-рекурсивным процессом

6

Линейно-итеративный процесс

Учимся строить рекурсии с аккумулятором и знакомимся с оптимизацией хвостовой рекурсии

7

Функции первого класса и передача функций как аргументов

Учимся передавать анонимные функции как аргументы других функций

8

Функции первого класса и возврат как значения

Учимся строить более обобщенные функции и генерировать из них конкретные

9

Данные

Пытаемся понять, что такое данные в рамках языка программирования и как строить структуру данных на примере pair

10

Абстракция данных

Знакомимся с идеей абстракции данных на примере создания структуры, представляющей рациональное число

11

Замкнутые множества

Знакомимся с понятием замыкания при использовании математической операции на примере вложенных пар

12

Map

Знакомимся с функцией высшего порядка, позволяющей применять переданную функцию к элементам множества

13

Фильтрация

Знакомимся с еще одной полезной функцией высшего порядка: filter

14

Свертка

Пишем функцию, позволяющую производить свертку нескольких значений

15

Деревья

Изучаем структуру данных «двоичное дерево» и ее реализацию в PHP с помощью списков

16

Стандартные интерфейсы

Рассматриваем концепцию разделения программы на функциональные блоки, работающие с общей структурой данных

17

Оператор присваивания

Рассматриваем концепцию присваивания и изменения состояния

18

Объекты

Продолжаем изучение оператора присваивания и переходим к созданию объектов

19

Преимущества присваивания

Рассматриваем полезные и положительные аспекты сохранения состояния

20

Недостатки присваивания

Рассматриваем проблемы, связанные с использованием присваивания и сохранением состояния

Формат обучения

Испытания

1

Рекурсивный реверс

2

Сглаживание функций

3

Плоское дерево

4

Одинаковая чётность

5

Композиция функций

Рекомендуемые программы

Course Cover
  • Тренажер с практикой
  • Бессрочный доступ к теории
  • Асинхронный формат
Оформить подписку

3 900 рублей в месяц за все курсы