LINUX.ORG.RU

Intermediate Haskell

 , ,


4

4

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

★★★

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

кусок бекенда со всякими матанами, точно не знаю)

Debasher ★★★★★
()
Ответ на: WIWIKWLH от theNamelessOne

http://dev.stephendiehl.com/hask/

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

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

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

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

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

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

Чувак, ну это очень жирно, с монитора капает. Да ещё в постный-то день, ты это, помягче.

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

убогонький тормозной недоwm, тянущий гигабайт зависимостей

даже я со своей жирнотой тебе уступил здесь

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

ЯП общего назначения же, ну. Фигачить на нём приложения с использованием OpenGL можно смело, легко и непринуждённо.

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

Ну, про гигабайт зависимостей недалеко от правды. Хмонад это такой WM, что «тяжелее» (в плане зависимостей) многих DE :-).

Virtuos86 ★★★★★
()
Последнее исправление: Virtuos86 (всего исправлений: 1)
Ответ на: комментарий от Virtuos86
$ yaourt -S xmonad xmonad-contrib
[sudo] password for f1u77y: 
resolving dependencies...
looking for conflicting packages...

Packages (18) haskell-data-default-0.5.3-11  haskell-data-default-class-0.0.1-10  haskell-data-default-instances-base-0.0.1-12
              haskell-data-default-instances-containers-0.0.1-10  haskell-data-default-instances-dlist-0.0.1-11  haskell-data-default-instances-old-locale-0.0.1-10
              haskell-dlist-0.7.1.2-2  haskell-extensible-exceptions-0.1.1.4-13  haskell-mtl-2.2.1-5  haskell-old-locale-1.0.0.7-7  haskell-old-time-1.1.0.3-7
              haskell-random-1.1-5  haskell-setlocale-1.0.0.3-2  haskell-utf8-string-1.0.1.1-1  haskell-x11-1.6.1.2-6  haskell-x11-xft-0.3.1-16  xmonad-0.12-2
              xmonad-contrib-0.12-1

Total Download Size:     5.30 MiB
Total Installed Size:  110.47 MiB

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

upd: без xmonad-contrib вообще 34.96 MiB

f1u77y ★★★★
()
Последнее исправление: f1u77y (всего исправлений: 1)

Сейчас читаю книгу Parallel and Concurrent Programming in Haskell. Мне нравится. Очень познавательно. Наверное, книгу Real Word Haskell ты уже прочитал? Ее бы тоже посоветовал. Это все, не считая книг по самому языку, среди которых тоже есть отличные книги.

dave ★★★★★
()

Для веба есть, кстати, хорошие туториалы от самих создателей библиотек/фреймворков, но я их особо не смотрел. По happstack чуток почитал.

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

Других задач не можете что-ли придумать кроме веба? Или хочется обязательно везде свой фетиш протащить. То обертка для xlib, то веб... Фейспалм.

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

насколько быстрее я смогу написать движок типа крузиса на хаскеле с таким же перфомансом нежели на плюсах?

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

насколько быстрее я смогу написать движок типа крузиса на хаскеле с таким же перфомансом нежели на плюсах?

В 4.731 раза, очевидно же.

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

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

Не знаю, но зато факториалы и числа фибоначчи сможешь писать со скоростью поноса в одну строчку и типобезопасно! А крузисы для быдла.

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

В 4.731 раза, очевидно же.

Поправка - не 4.731, а 47.31 И это не перфоманс движка, это во сколько раз меньше потребуется кода и времени для разработки. Увы, это так же примерное количество человек смогут это осуществить.

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

Ты поток свой не по адресу направил. Что за xlib?

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

Какой сочный бугурт носилятора. Даже оконный менеджер осилить не смог ведь!

По сабжу: real world haskell. Сначала там про язык и вообщее про фп, а дальше интересно. А если погуглить что-нибудь типа 'functional programming best practices'?

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

насколько быстрее я смогу написать движок типа крузиса на хаскеле с таким же перфомансом нежели на плюсах?

Без обид, но ответа не могу дать, ибо неопределённость типа Inf/Inf.

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

XMonad что ли?

Ну ты и тормоз. Это те самые знаменитые ленивые вычисления irl?

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

Даже оконный менеджер осилить не смог

Нет, это хачкелята не осилили, я тут не при чем.

По сабжу: real world haskell.

Макулатура для тупых кульхацкеров. Самая бестолковая книжонка по ФП ever.

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

Да ладно, это ж букварь. Читать тоже не с Толстого начинают.

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

Ок, предложи толковую, тк кроме sicp и haskell real world я ничего не читал то будет интересно послушать рекомендации анонимного эксперта по функциональному программированию

Zaskar
()

ещё есть какая-то книженция Haskell Data Analysis Cookbook

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

Я другой анон, но заинтересовался, посмотрел код этого xmonad. 85% do и IO Круто, слов нет, но это не ФП. Они могли бы всё это и на PHP написать с тем же успехом.

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

Так он и работает как говно. Тот же awesome на быдляцких (с т.з. илитки) язычках и шустрее, и с флоатингом лучше дружит, и стандарты подерживает. При этом не тянет мегатонны шлака за собой. Единственная польза хмонада - любой анон может увидеть натуральный real world hahackel с императивной содомией во все поля, а не «чистые» академические высеры или байки кульхацкеров на тему «у нас есть такие приборы».

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

предложи толковую

А нету по хачкелю литературы, вообще голяк. Акадэмикам это не нужно, для них хацкель всего лишь пруф оф концепт нижележащих мат.теорий. Для школотронов хватит и букваря, чтобы факториал посчитать. У коммерсов свои доки закрытые. Ну сказал же ваш гуру: avoid success at all costs. Вот и нефиг. А по ФП ну почитай Одерского, например. Чувак умеет внятно излагать. Или из старинного Programming with Miranda.

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

а что ты ещё хотел от wm? его на чистых функциях не напишешь. но вот конфиг у него довольно-таки декларативный.

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

стандарты

однозначно, один из худших его минусов. хакирам, которые юзают его как standalone wm, не нужны стандарты, поэтому он их и не поддерживает(точнее поддерживает, но не все, которые бы мог).

Единственная польза хмонада - любой анон может увидеть натуральный real world hahackel с императивной содомией во все поля

я б не сказал. большинство всё-таки не глядят в ужасы ядра xmonad, а делают конфиг копипастой. а конфиг всё же достаточно декларативен. если бы wm сий был готов и допилен, в конфиге даже не надо было бы объявлять ни одного do

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

85% do и IO Круто, слов нет, но это не ФП.

Расскажи об этом подробнее. С какого перепуга do и IO перестали быть ФП?

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

А зачем тогда вообще было выбирать Хаскель, чтобы заниматься на нём, по меткому выражению анона, «императивной содомией»? Для практики ФП? do и IO, серьёзно?

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

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

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

Я в прострации, как всё запущено. «Вы ж убиваете меня этим вопросом»

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

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