/php-declarative

SICP based exercises on PHP from hexlet.io

Primary LanguagePHP

#PHP решения задач / hexlet.io Курс по декларативному программированию основанная на книге СИКП (Структура и Интерпретация Компьютерных Программ)

Содержание курса

  1. Hello World.
    Цель: Написать свою первую программу и узнать про способы ее запуска

  2. Абстракция с помощью функций.
    Цель: Познакомиться с литералами и выражениями, а так же приоритетом операций в них. Научиться работать с лямбда-функциями.

  3. Комбинирование функций.
    Цель: Научиться комбинировать функции. Познакомиться с понятиями окружения, порядок вычисления и подстановочной моделью вычислений

  4. Условные выражения.
    Цель: Научиться пользоваться ветвлениями. Познакомиться с понятием "предикат".

  5. Линейно-рекурсивный процесс.
    Цель: Познакомиться с понятием вычислительных процессов и, конкретно, линейно-рекурсивным процессом.

  6. Линейно-итеративный процесс.
    Цель: Научиться строить рекурсии с аккумулятором. Познакомиться с оптимизацией хвостовой рекурсии.

  7. Функции первого класса. Передача как аргументов.
    Цель: Научиться передавать анонимные функции как аргументы других функций.

  8. Функции первого класса. Возврат как значения.
    Цель: Научиться строить более обобщенные функции и генерировать из них конкретные.

  9. Что такое данные?.
    Цель: Попытаться понять, что такое данные в рамках языка программирования, и как можно построить структуру данных на примере pair.

  10. Абстракция данных.
    Цель: Познакомиться с идеей абстракции данных на примере создания структуры, представляющей рациональное число.

  11. Замкнутые множества.
    Цель: Познакомиться с понятием замыкания при использовании математической операции на примере вложенных пар.

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

  13. Фильтрация.
    Цель: Познакомиться с еще одной полезной функцией высшего порядка: filter.

  14. Свертка.
    Цель: Написать функцию, позволяющую производить свертку нескольких значений.

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

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

  17. Оператор присваивания.
    Цель: Рассмотреть концепцию присваивания и изменения состояния.

  18. Объекты.
    Цель: Продолжить изучение оператора присваивания и перейти к созданию объектов.

  19. Преимущества присваивания.
    Цель: Рассмотреть полезные и положительные аспекты сохранения состояния.

  20. Недостатки присваивания.
    Цель: Рассмотреть проблемы, связанные с использованием присваивания и сохранения состояния.