incrementCounter :: State Int ()
incrementCounter = do
prevValue <- get
put (prevValue + 1)
updateCounter :: State Int ()
updateCounter = do
incrementCounter
incrementCounter
incrementCounter
Можно заменить на:
incrementCounter :: State Int ()
incrementCounter =
get >>= \prevValue -> put (prevValue + 1)
-- или point-free
-- incrementCounter = get >>= put . (+ 1)
updateCounter :: State Int ()
updateCounter =
incrementCounter >> incrementCounter >> incrementCounter
Это из пакета mtl, для навигации можете использовать stackage.org.
do-нотация — это просто синтаксический сахар для композиции монад. Когда мы работаем с обычной State-монадой, мы имеем пару «текущий стейт» + «вычисляемое значение» (не знаю правильный ли термин), и передаём в следующую функцию (монаду), в ней можем поменять стейт, оставить его как есть, можно повлиять на вычисляемое значение исходя из полученного от предыдущей функции (монады) стейта. Это можно записать и объяснить каким-нибудь псевдо-кодом, тогда станет понятно, почему стейт-монада «чистая», несмотря на внешние сходства do-нотации на императивный стиль.
Те микро-оптимизации и приросты производительности совсем не покрывают те запросы на эту производительность, и приложение на электроне, жрущее 1,5гб — обычное дело, и 16 гб рамы теперь уже не выглядит таким уж большим числом, но стоит ли говорить что эти аналогичные этим приложениям на электроне по функционалу и даже особенностям визуального поведения существовали давно и укладывались в килобайты.
Что мы имеем спустя годы? Примерно тоже самое, тоже лагающее, такую же нехватку ресурсов и прочее, просто незаметно для нас, в фоне, выросли скорость и объём, и тут же были нещадно облюбованы поделками, разработанными неквалифицированными офисными рабами негро-индусами разработчиками.
Лично для меня, как для разработчика, а также пользователя, — опыт использования electron-приложений показал что динамические ЯП — моветон, и наивное расточительство, а electron — есть апогей этого порока, убедительная крайность. Electron-приложения я больше не использую, nuff said.
К счастью сейчас есть ряд инструментов позволяющих разрабатывать эффективно, абстрактно и высокоуровнево, при этом сводя к минимуму последствия этих удобств, без всяких виртуальных машин, иногда даже без GC. И как бы между прочим, JVM и этот JavaFX не входят в этот список благодетелей.
Веб взял верх над Delphi и Visual Basic не потому что JavaScript настолько крут. Есть более глубокие причины.
Т.е. вы хотите сказать что жопоскрипт-таки «крут»? Перед расстрелом из реактивного говномёта дадим автору шанс и сделаем вид будто он просто некорректно составил предложение. Ну или на худой конец, что подобная нелепица — погрешности перевода.
Всё просто, «безопасность» — это слово, которое продают маркетологи в свете популярности данной темы последнее время, но сам телеграм ничем принципиально не отличается от всех этих наплодившихся и закупоренных друг от друга «вацапов», «вайберов», «скайпов» и прочих игрушках большого брата, он стоит с ними в одном ряду. Если коротко — телеграм НЕ безопасен.
Как хорошо однако маркетологи поработали. Всюду этот централизованный сервер с псевдо-e2e шифрованием подаётся как «защищённый», а в свете описанных событий,… ну вы понимаете.
Вы не поняли мотивов, те паразиты, которые всё это заваривают, плевать хотели на эти наши «инторнэты», только вот вся оппозиция, представляющая для них реальную угрозу, в этих самых интернетах сконцентрировалась в виду полного цензурирования зомбоящика и прочих известных способов вещать о себе, да ещё и толпы людей на улицу подбивают выходить, которые потом кричат о том, что они (паразиты) все как один — преступники. Если бы не этот нюанс, то контролирование интернета ну максимум бы ограничилось например пачкой дядей-майоров на чтение личных переписок каждой из российских соц. сетей, чтобы собирать дань с наркотрафика.
Я хотел создать новый набор драйверов Windows, позволявших проводить массивную конкуренцию на рынке железа, чтобы работа новых медиа, включая аудио, ввод данных, видео, сетевые технологии, и т.п. на создаваемом нами рынке игр для ПК зависела от собственных драйверов Windows. Intel не справилась бы с конкуренцией на свободном рынке, созданной нами для компаний, производящих потребительское железо, и поэтому не смогла бы создать CPU, способный эффективно виртуализировать всю функциональность, которую могли потребовать пользователи. Так и родился DirectX.
Всё что нужно знать о некрософте в ответ на вопрос: «почему её называют копрорацией зла».
Раз пользователь пошёл на такой шаг чтобы купить что-то у компании, которая вот так вот к этому пользователю относится, то к этим ребятам у них точно вопросов не будет, они ещё в благодарностях рассыпятся и ноги им расцелуют.
Мерзость, после половины бросил читать. Сразу видно, пациент опылялся среди чинуш, последствия для интеллекта судя по всему от этого необратимы.
Нужно проводить чёткую грань между анонимностью и приватностью. Что такое анонимность? Это когда человек продаёт наркотики. Когда он заказывает убийство. Когда уклоняется от налогов. И его нельзя найти.
Определение прям от бабки со скамейки. Вещает «на языке народа».
Если вас действительно это заботит, то почему вы вообще используете телеграм? Он ничем принципиально не отличается от всех этих скайпов-вацапов-вайберов и айсикью. Как и прочие — централизован, как некоторые содержит огромную «дыру» в виде авторизации через сеть GSM, проприетарный сервер. Что тут ещё добавить, тут только вопрос доверия к неким «начальникам», тому, что они вам наобещают не сливать ваши личные данные тертьим лицам и что у них там точно-точно всё надёжно. Если вас это не устраивает, — вперёд изучать децентрализованные и открытые протоколы, вроде Matrix или XMPP/Jabber и всякое end2end/otr шифрование, для пущей надёжности — поднимайте свои федерации за пределами этой страны, чтобы блудливые руки до них не добрались физически.
Слишком много ждут от человеческих обезъян, можно сказать что совершение ошибок заложены в них by design;
Ответ на вопрос «кто действительно виноват» был дан тут:
указанные там значения — от базы данных в production (не знаю, почему они задокументированы в инструкции по настройке dev-окружения)
Увольнять никого не надо, это бы противоречило пт. 1, а тех. директору надо меньше рефлексировать, глубже изучать истоки проблем и наконец осознать склонность людей к совершению ошибок, пусть книжек там почитает о работе мозга и когнитивных искажениях.
Можно заменить на:
do-нотация — это просто синтаксический сахар для композиции монад. Когда мы работаем с обычной State-монадой, мы имеем пару «текущий стейт» + «вычисляемое значение» (не знаю правильный ли термин), и передаём в следующую функцию (монаду), в ней можем поменять стейт, оставить его как есть, можно повлиять на вычисляемое значение исходя из полученного от предыдущей функции (монады) стейта. Это можно записать и объяснить каким-нибудь псевдо-кодом, тогда станет понятно, почему стейт-монада «чистая», несмотря на внешние сходства do-нотации на императивный стиль.
См. Type Classes в Haskell.
UPD: А лучше вот: learnyouahaskell.com/types-and-typeclasses#typeclasses-101
Что мы имеем спустя годы? Примерно тоже самое, тоже лагающее, такую же нехватку ресурсов и прочее, просто незаметно для нас, в фоне, выросли скорость и объём, и тут же были нещадно облюбованы поделками, разработанными неквалифицированными
офисными рабами негро-индусамиразработчиками.Лично для меня, как для разработчика, а также пользователя, — опыт использования electron-приложений показал что динамические ЯП — моветон, и наивное расточительство, а electron — есть апогей этого порока, убедительная крайность. Electron-приложения я больше не использую, nuff said.
К счастью сейчас есть ряд инструментов позволяющих разрабатывать эффективно, абстрактно и высокоуровнево, при этом сводя к минимуму последствия этих удобств, без всяких виртуальных машин, иногда даже без GC. И как бы между прочим, JVM и этот JavaFX не входят в этот список благодетелей.
Т.е. вы хотите сказать что жопоскрипт-таки «крут»? Перед расстрелом из реактивного говномёта дадим автору шанс и сделаем вид будто он просто некорректно составил предложение. Ну или на худой конец, что подобная нелепица — погрешности перевода.
Как хорошо однако маркетологи поработали. Всюду этот централизованный сервер с псевдо-e2e шифрованием подаётся как «защищённый», а в свете описанных событий,… ну вы понимаете.
www.youtube.com/watch?v=V1dz695UNHA
Можно не читать, расходитесь, тут не на что смотреть.
Всё что нужно знать о некрософте в ответ на вопрос: «почему её называют копрорацией зла».
Определение прям от бабки со скамейки. Вещает «на языке народа».