Найти тему
Пишем о чём-то

Пара слов о Haskell

Оглавление

Большинство языков программирования, несмотря на различия в синтаксисе, количестве типов переменных и тд., в целом походи логикой написания и исполнения, да и программисту на каком-нибудь C++ в целом не будет затруднительно понять логику кода на JS или php. Другое дело — Haskell. Разобраться в нём без подготовки будет очень сложно. В чём же проблема?

Лого Haskell
Лого Haskell

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

Что такое функциональный язык?

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

Вернёмся к Haskell

В данном языке вся логика программы основывается на функциях. Тут нет ни while, ни for, ни какого-либо ещё специального синтаксиса для итераций. Хочешь несколько раз прогнать код по кругу? Пиши этот код в отдельной функции, которая будет вызывать саму себя, если ещё не пора перестать повторять. Хочешь по очереди вывести объекты в списке? Вручную отслеживай какой по счёту объект нужно выводить и каждый раз передавай номер следующего объекта этой же функции.

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

Казалось бы, небольшой код, а ничего не понятно(
Казалось бы, небольшой код, а ничего не понятно(

Также у Haskell есть интересная особенность — он не станет искать результат вычислений, пока он не пригодится. Это даёт возможность для множества нетривиальных решений, например, для работы с бесконечными списками.

По итогу, Haskell — это язык, на котором люди оттачивают своё мастерство в поиске нестандартных решений, а не для создания реальных программ. Если хотите что-то подобное — учите Haskell!

Подписывайтесь на канал и ставьте лайки!