PRO курс

JS: Последовательности

4707 сообщений в сообществе 3602 учащихся

Описание

Продолжение изучения составных данных на более продвинутом уровне. Рассматриваем тип данных «список». В течение курса работаем над проектом «Генератор HTML», и на практике учимся понимать и использовать функции высшего порядка filter, map и reduce. Знакомимся с иерархическими структурами и уровневым проектированием.

Пререквизиты

JS: Составные данные

Уроки курса

  • 1

    Введение

    Познакомиться с курсом и проектом «Генератор HTML», который будет постепенно разрабатываться в течение всего курса.
  • 2

    Представление последовательностей

    Вспомнить пары (pairs) и рассмотреть представление списков с помощью пар.

    тесты

    упражнение

  • 3

    Разметка

    Начать разрабатывать библиотеку для работы с HTML. Познакомиться с Markdown. Изучить общие принципы языков разметки на примере HTML.

    тесты

    упражнение

  • 4

    Отображение списков

    Рассмотреть функцию map и способ отображения списков.

    тесты

    упражнение

  • 5

    Фильтрация списков

    Изучить новую очень важную операцию — фильтрацию. Рассмотреть функцию filter, которая является одной из трех главных функций высшего порядка в функциональном программировании. Понять, как реализована функция filter внутри, и как она помогает писать хороший декларативный код на примере функции удаления тегов.

    тесты

    упражнение

  • 6

    Свертка

    Рассмотреть третий «столп» функционального программирования — функцию reduce. Понять, как она может помочь нам при создании обработчика HTML.

    тесты

    упражнение

  • 7

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

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

    тесты

    упражнение

  • 8

    Иерархические структуры

    Перейти к построению иерархических структур с помощью пар.

    тесты

    упражнение

  • 9

    Уровневое проектирование

    Изучить подход «уровневого проектирования», примером которого является наша реализация библиотеки для работы с HTML.

    тесты

Испытания

Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки.

Автор

Кирилл Мокевнин

Сооснователь и технический директор образовательного проекта Hexlet. Соорганизатор конференции Nastachku.ru. В прошлом руководил филиалом undev.ru в Ульяновске, а до этого работал в Qik (Skype). Создает инженерную культуру в компаниях и несет в массы XP, DDD и DevOps. Евангелист ментального программирования.

Впечатления #

В ходе долгих мучений, пришло прозрение и все встало на свои места:

«Мы становимся крепче там, где ломаемся», — Хемингуэй

Спасибо за упражнения, хотелось бы видеть упражнения где необходимо использовать (чтобы без этого было сложно решить) каррирование, частичное выполнение итд, вобщем все из уроков по функциям.

P.S. очень помогла подсказка с concat где нужно представить как будет реализовано копирование последовательности, спасибо.

Решил оставить комментарий, так как намучался с этой штукой.

По has, да будет в здравии тот человек который оставил в вопросах этот кусок кода

// removed

Это ключ к пониманию этой части, в видео это не разжевано и не очень понятно рассказано. Тут нам с помощью "isEmpty" нужно "открывать" каждую пару, до тех пор, пока не дойдет до крайней пары и хвост не окажется "null". Если дошло до "null", то совпадений не найдено.

По "reverse", в уроке итеративного процесса есть неплохой шаблон, его можно использовать, поменяв только значения, НО! Его нужно чуть-чуть дописать И как правильно подставить, тоже нужно хорошо подумать.

Надеюсь это кому-то поможет =)

Ох сколько мороки было с функцией concat пока не понял, как её можно реализовать. Всё-таки огромное удовольствие испытываешь, когда после долгих мучений все тесты становятся зелеными =). Хм... похожие эмоции я испытывал в серии игр Dark Souls )). Решение учителя заставило смеяться - настолько просто и красиво написано. Спасибо!

Здравствуйте, спасибо за такие задачи. Реально мозги начинают думать.

продолжительность
20 часов
награда
86 баллов
Получить доступ к курсу