LINUX.ORG.RU

https://m.habrahabr.ru/company/piter/blog/244973/

Ну и если ты предпочитаешь видеоуроки... Москвин

Функциональное программирование на языке Haskell Курс знакомит слушателей с языком Haskell - наиболее известным чистым функциональным языком программирования. Мы изучим понятийный аппарат и методы программирования, характерные для функциональных языков, и научимся применять их, используя богатый инструментарий, предоставляемый языком Haskell. Совместный курс Академического университета и Computer Science Center.

https://stepik.org/course/Функциональное-программирование-на-языке-Haskell-75/

Deleted ()

Вот это понравилось: Allen C., Moronuki J. Haskell Programming from first principles. Тайпклассопедию уже упомянули. Ну и Hoogle для документации.

JaneDoe ()
Ответ на: комментарий от playX

Английский знаю,but my english is not so good

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

I-Love-Microsoft ★★★★★ ()

Ромку Душкина почитай или Изучай Haskell во имя добра!

anonymous ()
Ответ на: комментарий от theNamelessOne

real world haskell устарел в общем то, книге всё таки уже больше 9 лет, а это эпоха для хаскеля.

ТС, вот тут хороший обзор литературы на русском (правда, без русских изданий) https://medium.com/@_bravit

Очень рекомендую вот этот курс, в двух частях, на русском. Первая часть весьма хороша. Второй части кажется аналогов нет, ни на курсере, ни на едексе, нигде не встречал. Правда она сложная довольно.

первая часть https://stepik.org/course/75
вторая часть https://stepik.org/course/693

Я бы начал с первой части, потом прочитал бы хорошую книжку и потом вторую часть взял бы.

PS. Да, не жди что осилишь за две недели. Это довольно непросто, не столько сам язык, сколько то что называют «паттернами» в объектном мире - т.е. монады, аппликативные функторы и прочие абстракции и варианты их исопльзования.

AndreyKl ★★★★★ ()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от playX

Спасибо всем за советы,думаю закажу Real World Haskell

Так бесплатно доступно on-line

dave ★★★★★ ()

For greater good читать не советую. Я по ней учился, как учебник это очень плохая книга. На уровне ”... for dummies”.

Deleted ()
Ответ на: комментарий от playX

Не совсем понял твою мысль, но свою выскажу с ещё одной стороны чуть подробнее:

Материала там (в хаскеле) довольно много. С наскоку одолеть до уровня «я понимаю как это в реальной жизни» не выйдет. Т.е. это несколько (больше двух точно) месяцев регулярных занятий чтобы достичь какого-то приличного начального уровня.

Брагилевский (ссылку на его обзор литературы я дал выше, он член коммитета хаскель или как там это называется) говорит что книга Курта предназначена для не-хаскель программистов с опытом. Может быть можно начать с неё.

Но в целом, я бы начал с курса Москвина (первая часть) либо learn you a haskell for great good (есть на русском, кажется). Learn you a haskell довольно давно вышла, но так как она для новичков, то актуальность не потеряла.

Москвин1 и «во имя добра» - вещи примерно одного уровня (кажется Москвин несколько богаче, и соотвественно, сложнее, но я уже не особо помню, не уверен). Мне кажется обе эти вещи брать не стоит, я бы взял только Москвина. Это какой то «пред» уровень будет. Займёт месяц-два.

Затем возьми хорошую книжку, из тех что рекомендует Брагилевский , хочешь возьми Курта, хочешь - Хаттона или Бёрда. Посмотри описание в обзоре и реши что тебе больше подходит. В них во всех есть базовый курс, но после Москвина это будет повторение и пройдёшь быстро. Но там не только база, так что за неделю не осилишь всё равно.

Это ещё месяц-два.

После этого можно взять вторую часть курса Москвина. Это ещё месяц-два.

После этого можешь сам решать что тебе нужно.

Из книг на русском хочу упомянуть книгу Р. Душкина - я её проглядел буквально по оглавлению - эта книга включает в себя некий базис теор ката и лямбда исчисления. Это сложно для начала. Её стоит оставить на момент когда сам будешь разбираться в основах, на мой взгляд.

AndreyKl ★★★★★ ()
Последнее исправление: AndreyKl (всего исправлений: 2)
Ответ на: комментарий от AndreyKl

прошу прощения, наврал автора - Р.Душкин это другая книга. Если смотреть по содержанию/оглавлению, то весьма интересная, но сложная и нацеленная на изучающих теорию языков программирования, кажется, а не на практику вроде веб-дева. Я бы поставил её тоже после Москвина1 наряду с хаттоном, куртом и бёрдом (но книгу я не читал, сужу только по содержанию).

А то что я написал выше относится к ссылке на книгу http://anton-k.github.io/ru-haskell-book/book/home.html . Сужу только по содержанию, опять же.

AndreyKl ★★★★★ ()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от AndreyKl

Спасибо за все советы, я в данный момент пока чит ohaskell.guide и пока получается подобие хелловордов,меня интересует одна вещь,есть ли в хаскеле модуль позволяющий записывать инфу в файл или наоборот искать в файле нужно слово,например в Питоне я создавал переменную с нужным словом,например mail = '@' и затем уже открывал файл и делал так for line in file: If mail in file export.write() Так вот вопрос,такое в хаскеле реализуемо?

playX ★★ ()

На Edx.org Гениальные лекции Introduction to Functional Programming. Английский очень простой.

anonymous ()
Ответ на: комментарий от playX

на вскидку руками это будет что то вроде

readFile "filename" >>= ((writeFile "newfilename") . unlines . filter (hasChar '@') . lines)


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

По поводу ohaskell.guide - читаестя легко, и кажется, всё понятно. Кажется, автору, действительно, удалось «развеять страхи». Но по содержанию это введение во введение. Т.е. кажется что вот эта книжка, а затем Москвин1 - какое то близкое к оптимальному начало.

AndreyKl ★★★★★ ()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от playX

Гм, как бы правильно выразить мысль..

Ну во-первых, да, вполне реализуемо после познавания азов, это точно. Ну правда надо будет доки для библиотек поглядеть, ясное дело. Думаю, эту программу можно и за десяток вечеров переписать, даже если ничего не знаешь о хаскеле. Может стоит сначала прочитать ohaskell.guide, будет проще.

Сложность хаскеля как я уже упоминал, в первую очередь не в языке а в «паттернах использования».

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

ЗЫ. правда я не понял, как там в .doc файл записываются простые строки? Хотя, вероятно, это просто расширение такое выбрано для текстового файла...

AndreyKl ★★★★★ ()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от playX

хм, понятно, какой-то экспорт хитрый там, прозрачный для пользователя.

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

AndreyKl ★★★★★ ()
Ответ на: комментарий от playX

ок, договорились, в конце недели постараюсь поглядеть, дам знать.

AndreyKl ★★★★★ ()
Ответ на: комментарий от playX

В этой программе никакого питона, по сути, нет. Строки 15-18, 25-28, 30-33, 35-38 выносятся в однострочник, в остальном идёт возня с тулкитом. Будь tk для хаскеля жив, для реализации хватило бы азов синтаксиса, а код выглядел бы точно так же.

Laz ★★★★★ ()
Ответ на: комментарий от playX

Программа здесь https://github.com/andreykl/filter-test

Это не точная копия, но очень близко к оригиналу.

Весь «осмысленный» (фильтрующий) код находится в файле src/Lib.hs. Этот файл экспотрирует только две функции: runFilterEmails и runFilterNumbersRu, которые вызываются в app/Main.hs. Сам Main.hs содержит работу с GTK и вызов этих двух функции. Думаю, что код работы с GTK будет примерно таким же и на других языках.

Основная функция

-- standalone usage example:
--   filterFile "/tmp/inputfile.txt" "/tmp/output-emails.txt" (filter $ elem '@')
filterFile inputFile outputFile fltr = do
  content <- readFile inputFile
  writeFile outputFile (unlines . fltr . lines $ content)


фильтрует inputFile фильтром fltr и пишет результат в outputFile. С ней можно поиграться прямо из консоли, как описано в README.md. Постарался в ридми так же кратенько упомянуть что к чему. Надеюсь, окажется полезно.

AndreyKl ★★★★★ ()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от AndreyKl

Спасибо, посмотрел на эту программу выглядит интересно и гтк в хаскеле использовать как то легче, буду продолжать осваивать хаскель

playX ★★ ()
Ответ на: комментарий от playX

Рад что «ко двору». Если будут вопросы, задавать можно тут, на форуме, ставь тег, хаскелисты тут водятся вполне себе и на тег многие подписаны.

Ещё есть канал в телеграмм https://t.me/haskellru . Говорят, живой, но я там не был. Ещё есть email-рассылка haskell-beginners, живая, но на английском.

Успехов!

AndreyKl ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.