#PHP решения задач / hexlet.io Курс по декларативному программированию основанная на книге СИКП (Структура и Интерпретация Компьютерных Программ)
Содержание курса
-
Hello World.
Цель: Написать свою первую программу и узнать про способы ее запуска -
Абстракция с помощью функций.
Цель: Познакомиться с литералами и выражениями, а так же приоритетом операций в них. Научиться работать с лямбда-функциями. -
Комбинирование функций.
Цель: Научиться комбинировать функции. Познакомиться с понятиями окружения, порядок вычисления и подстановочной моделью вычислений -
Условные выражения.
Цель: Научиться пользоваться ветвлениями. Познакомиться с понятием "предикат". -
Линейно-рекурсивный процесс.
Цель: Познакомиться с понятием вычислительных процессов и, конкретно, линейно-рекурсивным процессом. -
Линейно-итеративный процесс.
Цель: Научиться строить рекурсии с аккумулятором. Познакомиться с оптимизацией хвостовой рекурсии. -
Функции первого класса. Передача как аргументов.
Цель: Научиться передавать анонимные функции как аргументы других функций. -
Функции первого класса. Возврат как значения.
Цель: Научиться строить более обобщенные функции и генерировать из них конкретные. -
Что такое данные?.
Цель: Попытаться понять, что такое данные в рамках языка программирования, и как можно построить структуру данных на примере pair. -
Абстракция данных.
Цель: Познакомиться с идеей абстракции данных на примере создания структуры, представляющей рациональное число. -
Замкнутые множества.
Цель: Познакомиться с понятием замыкания при использовании математической операции на примере вложенных пар. -
Map.
Цель: Познакомиться с функцией высшего порядка, позволяющей применять переданную функцию к элементам множества. -
Фильтрация.
Цель: Познакомиться с еще одной полезной функцией высшего порядка: filter. -
Свертка.
Цель: Написать функцию, позволяющую производить свертку нескольких значений. -
Деревья.
Цель: Изучить структуру данных «двоичное дерево» и ее реализацию в PHP с помощью списков. -
Стандартные интерфейсы.
Цель: Рассмотреть концепцию разделения программы на функциональные блоки, работающие с общей структурой данных. -
Оператор присваивания.
Цель: Рассмотреть концепцию присваивания и изменения состояния. -
Объекты.
Цель: Продолжить изучение оператора присваивания и перейти к созданию объектов. -
Преимущества присваивания.
Цель: Рассмотреть полезные и положительные аспекты сохранения состояния. -
Недостатки присваивания.
Цель: Рассмотреть проблемы, связанные с использованием присваивания и сохранения состояния.