https://www.schoolofhaskell.com/user/DanBurton/20-intermediate-exercises
Рекомендуемые каты:
-
Представление структур данных из функций
Практически любой тип данных можно представить даже в языке без специальных синтаксических конструкций, если этот язык поддерживает функции высшего порядка и замыкания. Haskell как раз имеет специальные синтаксические конструкции для создания алгебраических типов данных, однако на замену им могут прийти простые функции. Как с их помощью сэмулировать пары, Maybe и даже списки как раз продемонстрирует эта ката.
Также для закрепления концепции алгебраических типов данных рекомендую подглаву 2.1 книги SICP, там этот подход отлично описан. Саму книгу в целом тоже рекомендую в дальнейшем прочесть, хотя многие темы там уже по продвинутым темам.
-
Изоморфизм (на самом деле довольно простая и интересная ката)
Необязательные каты:
-
Несложная ката, решив которую можно познакомиться с зависимыми типами. Несмотря на то, что в Хаскеле на данный момент зависимых типов нет, последние можно сымитировать при помощи некоторых расширений
ghci
и типов-синглтонов - типов, имеющих только одно значение.
Обязательно попробуйте найти и пройти еще от 3-х кат (1, 2 или 3 kyu) самостоятельно.