Код
#подборки

Must read. 5 свежих англоязычных статей о Haskell

Новинки для Haskell-разработчиков, гайды по Template Haskell, тестированию и симуляции хеш-таблиц.

сайт LINGsCARS

Каждую неделю мы отбираем для вас несколько свежих материалов из англоязычного интернета. В этом выпуске — самое интересное о Haskell.

Плюсы Haskell и баттл с Python

Зачем читать: узнать о преимуществах языка и сравнить его с Python (ага, он же теперь лидер TIOBE, с чем ещё сравнивать?).

Где читать: на Medium.

Haskell — один из самых известных языков с ярко выраженной функциональной парадигмой программирования.

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

Но у автора статьи есть аргументы:

  • Статическая типизация: благодаря ей многие баги видны уже в самом начале.
  • Разнообразие инструментов: Haskell поддерживает алгебраические типы данных, классовый полиморфизм и многое другое.
  • Продвинутая экосистема: в ней найдётся решение почти для любой проблемы.
  • Высокая производительность: программа компилируется непосредственно в машинный код.
  • Безопасность доступа к памяти: в Haskell управление памятью автоматическое, что помогает избежать ошибок.
  • Чистые функции и неизменные данные — основа программирования на Haskell.
  • Метапрограммирование: поддержка абстрактного дерева синтаксиса.
  • Удобные библиотеки для работы со сложными сущностями и явлениями — например, параллелизмом.

Подробнее о том, как Haskell смотрится на фоне Python, какие у него преимущества и какие недостатки — в оригинальной статье.

Что нового в Haskell?

Зачем читать: узнать о новостях из мира Haskell и понять, чего ждать в скором будущем.

Где читать: на Medium.

Haskell Foundation — некоммерческая организация, которая занимается развитием языка Haskell. Авторы рассказывают, чего комьюнити добилось за последние месяцы, как устроена работа над языком и какими инициативами заняты участники фонда прямо сейчас.

Вот парочка новинок:

  • Документация языка стала проще, понятнее и полезнее — и продолжает хорошеть. Кроме того, улучшений дождались HaskellWiki, Haddock и HaskellSchool.
  • Поддержка Windows в Haskell долго оставляла желать лучшего, но её наконец-то исправили!
  • Появился Performance book — новый проект, в котором эксперты и любители Haskell могут обменяться опытом. Создатели надеются, что он поможет разработчикам глубже понять, как устроен и работает язык.
  • И ещё одна инициатива в комьюнити — подкаст про Haskell. Вышло уже несколько эпизодов.

Введение в Template Haskell

Зачем читать: чтобы работать эффективнее.

Где читать: на Functional Works.

Template Haskell — это набор функций и инструментов, которые добавляют шаблоны и упрощают работу с кодом. Он пригодится для автоматизации, ускорит написание типового кода и позволит выполнять программу прямо во время компиляции.

В гайде можно посмотреть на примеры его использования и понять, как он работает. А ещё там есть пара ссылок на материалы по теме для продвинутых разработчиков.

Haskell, где твои хеш-таблицы?

Зачем читать: если вам очень не хватает хеш-таблиц и хочется узнать, как воссоздать их в Haskell.

Где читать: на Medium.

В Haskell нет хеш-таблиц и словарей — и многим это кажется непривычным. Особенно тем, кто привык к JavaScript.

В статье — два примера того, как обойти это ограничение и симулировать подобную структуру в Haskell.

Первый способ — использовать списки и кортежи. Для этого нужно сначала создать пары значений в формате кортежей, а потом сохранить их в один список.

Второй — использовать модуль Data.Map. Суть тут примерно та же, только в Data.Map используются бинарные деревья.

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

Тестирование на основе свойств: QuickCheck

Зачем читать: разобраться в тестировании на основе свойств.

Где читать: на Medium.

В юнит-тестах частенько не учтены все значения — а иногда это критично. Здесь на помощь приходит тестирование на основе свойств. Оно хорошо тем, что вводные данные в нём генерируются автоматически. Следовательно, эффективность тестов выше, а у коварных багов меньше шансов остаться незамеченными.

Как раз для такого тестирования существует библиотека QuickCheck. А в статье — советы о том, как использовать её возможности на полную катушку. Например, одна из главных задач тестирования на основе свойств — повысить вероятность «неприятного» значения до максимума.

Что ещё интересного?

Если вам не хватило этих материалов про Haskell — вот ещё несколько интересностей на десерт.


Нейросети для работы и творчества!
Хотите разобраться, как их использовать? Смотрите конференцию: четыре топ-эксперта, кейсы и практика. Онлайн, бесплатно. Кликните для подробностей.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована