LINUX.ORG.RU

Intermediate Haskell

 , ,


4

4

Что можно почитать хорошего на тему приемов среднего уровня и best practices при создании реальных неэзотерических программ на Haskell? Новичковые туториалы и теоркатовая наркомания не нать. Интересуют, например, обзоры современных прикладных библиотек, советы по проектированию и т.д.

★★★

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

понятна мотивация авторов xmonad'a. Они эту «императивную содомию» искренне считают настоящим функциональным программированием.

ХЗ, что на самом деле считают авторы xmonad, но Пейтон-Джонс считает, что «Хаскель - лучший в мире императивный язык» (ц).

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

Маловато у тебя знаний. Ты просто неинтересен.

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

Не стану рассказывать ребёнку отчего ветер дует - это немного другое. Тут другой анон рекомендовал уже книжки, если они не помогут, то я-то и подавно пытаться не стану.

Но вы меня убедили, с трудом, но убедили.

Хаскель - говно, раз вокруг себя формирует сообщество таких странных людей. Которые продолжают писать ровно так же, как до этого писали на каком-нибудь пхп, но только теперь используя синтаксис Хаскеля.

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

Пейтон-Джонс считает, что «Хаскель - лучший в мире императивный язык»

В этом треде лично мне убедительно доказали, что так оно и есть. Но насчёт первой части не согласен, есть лучше.

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

А зачем тогда вообще было выбирать Хаскель

ради удобного конфигурирования, например. да, в core у него ад из X, IO и прочей императивщины, но end user видит лишь свой вполне декларативный конфигурационыый файл, в котором даже действия описаны в функциональном стиле.

чистые незамутнённые понты

это там тоже есть, но не до такой степени, что весь проект на этом

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

«Хаскель - лучший в мире императивный язык»

В этом треде лично мне убедительно доказали, что так оно и есть.

Ну так в чем твоя претензия к Хаскелю?

Но насчёт первой части не согласен, есть лучше.

Тебе убедительно доказали, но ты не согласен, окей. Назови императивные языки, которые лучше Хаскеля.

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

Ну так в чем твоя претензия к Хаскелю?

У меня изначально претензий не было, я просто следил за «дискуссией». Увидев код xmonad удивился, т.к. Хаскель вроде позиционируется в основном как функциональный язык, а тут императивщина во все поля. Но потом оказалось, что это-то и есть ФП! Потому что написано-то на Хаскеле.

Тебе убедительно доказали, но ты не согласен, окей. Назови императивные языки, которые лучше Хаскеля.

Ага, бегу тебе что-то доказывать. Иди Мурзилку читай.

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

Хаскель вроде позиционируется в основном как функциональный язык, а тут императивщина во все поля. Но потом оказалось, что это-то и есть ФП!

У тебя явные проблемы с чтением.

Ага, бегу тебе что-то доказывать.

Я не просил что-то мне доказывать. Но, как выяснилось, ты не можешь даже перечислить языки.

Иди Мурзилку читай.

Слив засчитан.

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

А ты всё сливы считаешь? Болезный.

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

Держи ещё одну сливу: rust говно.

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

Ещё один повод для гордости: главный сливособиратель лора. Это твой opus magnum

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

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

«Стабильность - признак мастерства». Не коверкай цитаты.

Ещё один повод для гордости: главный сливособиратель лора. Это твой opus magnum

Кисо,ты обиделось штоле?

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

Я тут с ним согласен, это чистые незамутнённые понты. «Смотрите, чуваки и чувихи, НА ЧЁМ я wm пишу. На Хаскеле! Это вам не быдлоязык какой»

А в итоге имеем говнокод, ничего общего с ФП не имеющий, в который смотришь как в код php-движка какого-нибудь. Зато эту хрень приводят в качестве примера real-world Хаскель проекта. Исходники бы закрыли, что-ли, глядишь, не опозорились бы.

Михаил, Вы делаете меня грустной-таки пандой. Валерьянки примите что ли.

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

Судя по рекомендации инсталлировать его brew, pacman или choco (wtf choco?), оно игрушка для яумамыхипсторов. Хотя статическая типизация и все дела, да...

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

Ну я его Nix'ом собираю, так что ты прав, видимо.

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

А я люблю коверкать цитаты. Ты на это так радостно бросаешься, как будто ты андронный коллайдер изобрёл. Это дорогого стоит.

Ты яркое доказательство тезиса, что эволюция может пойти вспять.

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

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

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

https://github.com/purescript/purescript/wiki/Differences-from-Haskell

Если коротко, то не считая отсутствия современных плюшек типа type families, главных отличия два: «Eager evaluation» и «Named instances».

Первое правильно читать как «нам лень(нет времени?) делать strictness analyser». А вот второму я было обрадовался, но тут же увидел краткое описание:

Overlapping instances are still disallowed, like in Haskell. The instance names are used to help the readability of compiled JavaScript.

Авторы могли получить ништяков этим решением, но вместо этого не получили от него ничего(может есть в планах?). Так что важное отличие только одно остаётся.

Как итог, purescript — haskell с кастрированной ленью и без современных расширений. Что уже очень-очень неплохо, кстати.

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

Отсутствием ленивости и row-полиморфной IO-монадой. Первое помогает императивным программистам оценивать производительность написанного ими кода, второе - понимать, что этот код не делает.

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

ништяков

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

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

Я бы не стал так далеко заходить, чтобы называть их врагами. Но оскорбляющими чувство прекрасного - да. Это как увидеть «Золотую осень» Левитана в цеху по разделке мясных туш.

И я не стесняюсь об этом говорить и писать. Ну и Хармса люблю, что скрывать.

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

Как итог, purescript — haskell с кастрированной ленью и без современных расширений. Что уже очень-очень неплохо, кстати.

Да это просто щастье. Эх, если бы он еще в Python компилировался...

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

Кстати, подобие haskell с энергичным порядком вычислений и зависимыми типами называется idris. Даже гуглится какая-то поделка, которая компилирует его в python. Но, увы, это лишь поделка.

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

purescript — haskell

еще в Python

Даже и лень спрашивать зачем это все. Просто предельная концентрация ненужно.

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

Постоянство - признак консерватизма, идиот!

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