Skip to content

Latest commit

 

History

History
49 lines (30 loc) · 3.12 KB

exercises-task.md

File metadata and controls

49 lines (30 loc) · 3.12 KB

Второе задание: задачки по языку

https://www.schoolofhaskell.com/user/DanBurton/20-intermediate-exercises

Рекомендуемые каты:

  1. Бесконечные структуры

  2. Создание своих инстансов для 5 базовых монад

  3. Монадный стек Maybe + List + State

  4. Представление структур данных из функций

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

    Также для закрепления концепции алгебраических типов данных рекомендую подглаву 2.1 книги SICP, там этот подход отлично описан. Саму книгу в целом тоже рекомендую в дальнейшем прочесть, хотя многие темы там уже по продвинутым темам.

  5. Изоморфизм (на самом деле довольно простая и интересная ката)

Необязательные каты:

  1. Алгебраические изоморфизмы (после каты Изоморфизм)

  2. Синглтоны

    Несложная ката, решив которую можно познакомиться с зависимыми типами. Несмотря на то, что в Хаскеле на данный момент зависимых типов нет, последние можно сымитировать при помощи некоторых расширений ghci и типов-синглтонов - типов, имеющих только одно значение.

  3. Корутины

  4. Lens

  5. Простой компилятор

Обязательно попробуйте найти и пройти еще от 3-х кат (1, 2 или 3 kyu) самостоятельно.