Упражнения
Для начала просто попрограммируем на Haskell.
-
Реализуйте функцию, которая вычисляет стрелку Пирса для двух булевых аргументов.
-
Реализуйте функцию которая сворачивает список используя стрелку Пирса.
-
Реализуйте вариант с использованием стандартных функций работы с списками.
-
Реализуйте функцию "руками" (не используя стандартные функции работы со списками).
-
Реализуйте тесты с помощью hedgehog.
-
-
Реализуйте функцию, которая вычисляет сложение двух бит (булов) с переносом.
-
Используя предыдущую функцию, реализуйте функцию, которая складывает два k-битных числа. Предположим, что числа — просто списки булов.
-
Реализуйте сами функцию, аналогичную функции pairwise.
-
Реализуйте сами функцию, аналогичную функции windowed.
-
Предположим, что изображение — это список байт и информация о размере. Ядро выглядит так же. Реализуйте функцию свёртки.
-
А теперь попробуем поработать с реальными изображениями с помощью вот этой библиотеки. Необходимо загрузить изображение (с помощью библиотеки), применить к нему свёртку (самостоятельно), сохранить изображение (с помощью библиотеки). Заодно познакомимся с IO.
-
Сделайте так, чтобы можно было применять несколько свёрток последовательно.
-
Определите собственные типы для ядра, изображения.
-
Реализуйте тесты с помощью hedgehog. В качестве эталона можно использовать свёртку из hip.
-