Ответы пользователя по тегу Haskell
  • Кто такие Альтернативные функторы?

    @potan
    Функциональный программист
    Проще всего считать что простой функтор может поднимать под себя функцию от одного аргумента, а аппликативные - от произвольного.
    Ответ написан
    Комментировать
  • Нужно ли функциональное программирование в машинном обучении?

    @potan
    Функциональный программист
    Сейчас ML занимаются в основном на языках с плохой поддержкой функционального стиля.
    Но многие вещи из теории ML излагается обычно в терминах чистых функций, функциональное программирование дает новый взгляд на работу с контейнерами и потоками, фреймворки для работы с большими данными в какой-то степени функционально-ориентированны. Так что есть шансы что доля языков с ФП в ML будет расти - Scala и Julia набирает популярность, да и R пока держется.
    Написано только что
    Ответ написан
    Комментировать
  • Примененима ли теория категорий в повседневном программировании?

    @potan
    Функциональный программист
    Пользу дает категорный образ мышления. Например, категорное описание наследование делает очевидным отличие виртуального наследования от не виртуального в C++.
    Еще ТК пытаются применять в системной инженерии, но на сколько успешно судить не берусь.
    Ответ написан
    Комментировать
  • Какой ФП язык выучить?

    @potan
    Функциональный программист
    Для начала можно взять ELM. Тем более для него сделана поддержка джаваскриптовой библиотеки react-native, позволяющей делать программв под Android и iOS.
    Для полноценного погружения надо осваивать Haskell.
    Ответ написан
    Комментировать
  • Как найти работу функциональным программистом?

    @potan
    Функциональный программист
    У нас (Адалиск) открыты пара вакансий на Scala. Clojure все-таки более редкий язык. Несколько лет назад на нем какие-то проекты делались в Jet Infosystem, но как сейчас там с ним дела не знаю.
    Ответ написан
    Комментировать
  • Какие книги почитать по функциональному программированию?

    @potan
    Функциональный программист
    Для полноценного изучения надо ничинать с Haskell (или *ML, но по ним и информации меньше, и не все там так просто, как может показаться).
    Если просто познакомиться и есть опыт фронтенда, то можно начать с ELM.
    Ответ написан
    Комментировать
  • Стоить ли изучать Elm?

    @potan
    Функциональный программист
    Однозначно.
    Реактивное программирование очень перспективно, и не только во фронтенде. А здесь оно в наиболее чистом виде.
    Язык и его экосистема уже достаточно развиты и хорошо подходят для быстрой разработки интерфейсов - код компактный и читабельный, есть мощные средства отладки и тестирования (за счет функциональной чистоты).
    Познакомиться с альтернативными парадигмами и синтасисами полезно, хотя бы что бы по новому взглянуть на традиционные.
    Ответ написан
    Комментировать
  • Как НЕ учить языки?

    @potan
    Функциональный программист
    Знающему Haskell и умеющиму на нем программировать не составит труда выучить питон и джаву на юниорском уровне. При этом писать на них он будет качественней, чем те, кто начинал знакомство с программированием именно с них.
    Основная проблема будет освоить библиотеки (и фреймвоки). Здесь действительно лучше помогает обучение именно на том языке, на котором придется работать. Язык и инфраструктура очень сильно влияют на импользование и подходы к изучению библиотек (я не могу понять, как джавапрограммисты живут без REPLа, но они от его отсутствия похоже не очень страдают).
    Ответ написан
    3 комментария
  • Выбор функционального языка программирования?

    @potan
    Функциональный программист
    Смотря для чего.
    В образовательных целях - Haskell. Он так же хорошо подходит для некоторых специфических задач (моделирование, компиляторы, преобразование данных).
    Для применений в обычной жизни - Scala, Clojure, F#.
    Ответ написан
    Комментировать
  • Синтаксис Haskell в контексте Xmonad?

    @potan
    Функциональный программист
    Haskell похож на стандартную математическую запись. Многое можно понять просто вспомнив школьные уроки матана :-).
    Функции задаются как набор записей:
    имя образец_аргументов | условие = вычисление значения для этого образца.
    Все имена обычных функций и других величин пишутся с маленькой буквы или знаками препинания не начинающимися с ':'. С большой буквы или с ':' пишутся конструкторы.
    : - конструктор списка. x:y:[] - то же самое, что [x,y].
    Все элементы списка должны иметь один тип.
    В образцах можно "вызывать" конструкторы, но не функции. Имя с маленькой буквы в образце порождает новую величину, которая будет связана с этим именем. То есть образец (x:y) сопоставится с непустым списком, при этом голова списка попадет в "переменную" x, а остаток списка - в y.
    По моему этого должно хватить.
    Ответ написан
    Комментировать
  • Как реализуется GUI на чистом функциональном языке без состояния (например, на Haskell)?

    @potan
    Функциональный программист
    Смотрите "Functional Reactive Programming". Упрощенно говоря программа получает поток событий и возвращает поток ответных действий.
    Ответ написан
    Комментировать