Хаскель и среднее арифметическое
Jul. 10th, 2015 02:01 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Вот я хаскель использовал только пару раз и практически его не знаю, но в чем проблема с неэнергичным foldl - помню. Про то, что нужны банг-паттерны внутри тупла - краем уха слышал, но не вникал.
Стеб же на эту тему людей, которые слышали звон, да не знают, где он, меня очень сильно огорчает.
Ладно, айсед критикует - он хотя бы писал на этом и понимает, о чем речь идет. А так - это выглядит как "разработчики на клиппере критикуют SQL за то, что теория множеств".
Стеб же на эту тему людей, которые слышали звон, да не знают, где он, меня очень сильно огорчает.
Ладно, айсед критикует - он хотя бы писал на этом и понимает, о чем речь идет. А так - это выглядит как "разработчики на клиппере критикуют SQL за то, что теория множеств".
no subject
Date: 2015-07-10 11:24 am (UTC)Кроме того, если народ не видит того, что если такие простые задачи не очень решаются, требуя при этом специфических знаний (там двадцать человек прособеседовали; где они их брали, интересно?), то это... как-то нехорошо.
no subject
Date: 2015-07-10 11:31 am (UTC)no subject
Date: 2015-07-10 12:34 pm (UTC)no subject
Date: 2015-07-10 01:37 pm (UTC)no subject
Date: 2015-07-12 04:25 pm (UTC)no subject
Date: 2015-07-10 11:39 am (UTC)Интереснее другое: пока в обсуждениях я видел всего то ли 1, то ли 2-х человек, для которых правильное решение - очевидно и иначе не написать: "Если хоть чуть-чуть писал на хаскелле, такое делается на автомате, даже на бумаже. Безусловный рефлекс -- аккумулятор (что-то делаем, а результат используется только в конце) -- ставим bang pattern." (c)
no subject
Date: 2015-07-10 01:57 pm (UTC)no subject
Date: 2015-07-10 02:17 pm (UTC)Подождём.
Просто если есть стиль, позволяющий избегать таких ошибок, то учить без него - всё равно что учить людей на императивных языках считать факториал рекурсивно. А книжек, которые учат писать сразу в нужном стиле, я пока вроде не видел (UPD: надо снова взяться за Real World Haskell) - видел лишь статьи типа "а давайте посмотрим профайлером и решим, где добавить строгости".
UPD: Хотя, конечно, не так красиво получается. Академический язык, в котором всё лениво и (благодаря этому) единообразно, if и иже с ним - обычные функции, а не специальные формы - это прелесть. Но реальный мир вносит свои коррективы...
no subject
Date: 2015-07-10 04:18 pm (UTC)Я за 2 года написания кода в продакшн на прикол с ленивостью напоролся ли тогда когда передал санк с эксепшеном в другой тред, где не предусматривалась обработка эксепшена. Мой пример конечно не показатель.
no subject
Date: 2015-07-11 11:40 pm (UTC)Да, это действительно "безусловный рефлекс". К сожалению, я не видел этих советов в явном виде в учебниках.
no subject
Date: 2015-07-12 06:42 am (UTC)no subject
Date: 2015-07-12 10:49 am (UTC)Мой опыт (с 1998 года) говорит именно об этом.
no subject
Date: 2015-07-14 08:05 am (UTC)no subject
Date: 2015-07-10 11:39 am (UTC)no subject
Date: 2015-07-10 11:43 am (UTC)Просто, когда у людей эбола со всякими node.js, jvm, .net и крестами - на это закрываются глаза. Если же похожие проблемы у хаскеля или скалы - сразу начинается массовая истерика. "Как так можно, язык, оказывается, знать надо, прежде чем писать на нем".
no subject
Date: 2015-07-10 11:46 am (UTC)При это SELECT AVG() как бы намекает авторам, что и в деларативном подходе можно делать по-человечески.
no subject
Date: 2015-07-10 11:52 am (UTC)RAM считаем внешней памятью, с дорогим и долгим доступом, кэши проца - дешевыми и на основе этого считаем :)
(no subject)
From:(no subject)
From:no subject
Date: 2015-07-10 12:49 pm (UTC)(no subject)
From:no subject
Date: 2015-07-10 11:44 am (UTC)no subject
Date: 2015-07-10 01:27 pm (UTC)no subject
Date: 2015-07-10 01:49 pm (UTC)И у разработчика два варианта продолжать. Либо "думать значениями", надеясь на авось пронесёт и фаза сойдётся, либо "думать санками", но при этом когнитивная нагрузка взлетает в небеса, что, в свою очередь, снижает доступные ресурсы на сам процесс программирования и увеличивает вероятность ошибок.
Но есть и третий вариант - никогда не использовать языки с "ленивостью по умолчанию" вне учебного контекста. Самый выгодный.
no subject
Date: 2015-07-10 02:00 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-10 04:56 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-10 05:30 pm (UTC)Пройдет еще двадцать лет, и критики функционального программирования рассосутся сами собой.
no subject
Date: 2015-07-10 06:49 pm (UTC)