zergon321
@zergon321

Какая теоретическая база нужна, чтобы заняться функциональным программированием на Haskell?

Хочу освоить полностью функциональный язык программирования, остановился на Haskell. Для него вроде как нужна большая теоретическая база. Что конкретно мне необходимо изучить, чтобы вкатиться?
  • Вопрос задан
  • 391 просмотр
Решения вопроса 2
Для [Haskell] вроде как нужна большая теоретическая база
Это не совсем так. Вот Вы когда сдачу в магазине пересчитываете, Вы вряд ли задумываетесь о том, что множества, используемые Вами для пересчёта мелочи (множество натуральных чисел, целых чисел и т. д.) с заданными на этих множествах операциями (сложение, умножение и т. д.) образуют различные алгебраические структуры (всякие там кольца, полугруппы, поля и прочее). Более того, даже если бы Вы об этом задумывались, это бы ну никак не помогало посчитать сдачу.

С теоретической безой Haskell'а почти также — Haskell активно использует понятия из теории категорий (категории, стрелки, монады, функторы и т. д.), но для использования этих понятий в рамках Haskell достаточно (по крайней мере на первых порах) рассматривать их просто как ФП-паттерны (по аналогии с ООП-паттернами, такими как фасад, синглтон, адаптер и вот это вот всё). Так, монада — просто тип, имеющий определённый набор "методов" (выражаясь в терминах ООП), удовлетворяющих определённым требованиям.

В общем, чтобы начать учить Haskell, ящитаю, особого теоретического бэкграунда не нужно. На первых шагах всё что Вам нужно будет понять — каррирование, ФВП, лямбды, ленивость. Это всё достаточно простые вещи, разжёванные в начале любой книжки по функциональному программированию. Ну а если вдруг, когда Вы столкнётесь с понятием "монада", Вам захочется узнать, что оно значит вне Haskell'а, откуда оно взялось — никто не мешает прочитать статейку/главу книги о ТК когда это понадобиться, не обязательно делать это заранее.
Ответ написан
Комментировать
Neznayka1979
@Neznayka1979
Интересы - IT, психология...
Для начала, прочитайте статью «Learn you a Haskell for Great Good»
learnyouahaskell.com/chapters
И вот, ещё:
anton-k.github.io/ru-haskell-book/book/toc.html
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ну и если ты привык думать циклами и итерациям, то придется научиться думать рекурсиями.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы