Лучше только то, что реализуемо на практике. Если ваша теория нереализуемая на практике и разлетается от малейшего дятла в пух и прах, то грош ей цена, как бы приятно она ни звучала для вас.
Большинство людей создаёт семьи не холодным расчётом, а с привлечением эмоций, и, если вкратце, эмоции очень сильно ломают адекватное реалистичное восприятие себя, партнёра, и ваших отношений. Воспитанный в такой парадигме человек рискует оказаться в очень паршивых отношениях и не распознать их достаточно рано.
А вот ситуация, когда в отсутствии возможности получить прибыль проблема игнорируется - это сплошь и рядом.
Отсутствие коммерциализации по определению означает отсутствие возможности получить прибыль, поэтому логическая ошибка (или, вернее, внутренняя неконсистентность) скорее у вас.
Я понимаю, что вы хотите сказать (капитализм с возможностью коммерциализации плохо, коммунизм без возможности коммерциализации хорошо, там все сразу бабочками запукают вообще), но у вас это не получится сказать без того, чтобы заодно потребовать изменить природу человека (как всегда нужно для коммунизма).
Почему вы считаете, что одурачены те люди, которые ходят к психологам и в фитнес-центры, а не, скажем, вы, подспудно таким образом демонстрирующий более высокий статус в вашей системе ценностей (luxury beliefs, вот это всё)?
Иными словами, можно как-то определить, какой из этих случаев реализуется на самом деле в нашем мире?
SNAP (фудстампы) плавно уменьшаются на 30 центов от каждого доллара заработка поверх некоторых стандартных вычетов, включая затраты на обогрев, воду и так далее (которые, кстати, тоже могут субсидироваться).
SSI (для инвалидов, по нему много фрода в упомянутых выше гетто) — аналогично уменьшаются медленнее роста дохода.
Medicaid (страховка здоровья) — продолжает покрываться целиком до примерно 20-35 тысяч (в зависимости от количества детей) в год, после этого — тоже плавно спадает, и какие-то подачки от государства мне калькулятор обещал даже для дохода в 60 тыщ в год (а это уже почти медиана).
И так куча других выплат. Единственная выплата, падающая почти так же быстро, как доход — TANF, но про неё и так никто не вспоминает, и она очень специфична в зависимости от конкретных штатов.
Поэтому, пожалуйста, хватит распространять очередное враньё от считающих, что помочь бездельникам можно только большим перераспределением денег от небездельников.
Самое главное после этого — начать регулярно рассказывать, что на самом деле это ерундовое занятие, и в обществе не котируется, и на хлеб так совсем скоро не заработаешь, и вот на самом деле надо вот…
Чуть позже ты, конечно, понимаешь, что это всё равно твоё предназначение, но ты уже презираешь то ли его, то ли самого себя за любовь и страсть к такому низкому и тупому занятию.
Вот вам то не кажется что это не очень нормально когда эникей на полставки зарабаывает больше, например, умотанного "продавца-грузчика-кассира" в продуктовом в одном флаконе?
Тут главное — не переборщить с попытками нормализации ситуации искусственным путём, а то
Однако - никакой корреляции с "полезностью" нет и в помине
Вы почему-то считаете, что полезность — это обязательно соответствие вашим личным представлениям о прекрасном, а это не так.
т.к. ну чем могут быть полезны маникюрщицы
Продают экспириенс, поднимают настроение от взаимодействия с другим человеком, и постоянная маникюрщица — ещё один элемент социального круга общения. Ради этого клиентка маникюрщиц вполне может обменять несколько часов своего труда (сообразно своей зарплате) на поход к маникюрщице.
фэшн-индустрия
Формирует точки соприкосновения и объединения групп людей. Сигнальная роль, где-то из той же серии, что и вера в одного и того же бога, в один и тот же национальный миф, и так далее. Социальный клей.
А желание объединяться у людей в крови в прямом смысле, поэтому они более чем готовы потратить несколько часов своего труда на то, чтобы купить модную шмотку для демонстрации принадлежности группе и своего статуса в ней.
Когда я не покупаю новые вещи и хожу в футболках с дырками, кстати, я делаю точно то же: демонстрирую свой статус через демонстрацию своей системы ценностей, которую я очевидно считаю более метастазной метастатусной, чем основанная на шмотках и изучении частной жизни знаменитостей система.
запрограммированное устаревание вещей
ХЗ, конспирология какая-то.
суперяхты
Демонстрация статуса, очевидно. Польза обществу — перераспределение доходов (строители этих яхт получают деньги за свою работу, и далее по цепочке обмена деньгами).
да и личные даже автомобили (когда можно и нужно развивать общественный транспорт и накрайняк каршеринг)
Хочу иметь возможность поехать куда хочу и когда хочу ⇒ покупаю автомобиль. Хочу — еду в тренажерку ночью, хочу — еду в поле за 50 км от города, хочу — еду в соседний город. Поэтому тут уже лично я готов потратить несколько месяцев своего труда, чтобы купить автокорыто.
обслуживание государством больных высокозатратными нозологиями вместо открытия эвтаназии
Здоровые люди обычно не хотят, чтобы, когда они стали больными, их эвтанировали, поэтому вера в социальное здравоохранение/universal healthcare/etc позволяет под общественное одобрение строить государственную медицину. Короче, польза — в успокоении.
Дальше аналогично, смысл вы поняли, надеюсь. Но что про онлифанщиц вы не вспомнили, я рад!
И пытаться рассказывать людям, что представления о полезности у них какие-то неправильные — затея довольно гиблая. Я не хожу к маникюрщицам (а также к барбершоперам, баристам, астрологам и коучам по личностному бизнес-росту), в гробу видал фэшн-индустрию (но про футболки с дырками уже писал), яхты тоже не хочу. Машина вот есть, разве что, это да. При этом, короче, я не то чтобы очень счастлив, и вполне возможно, что если бы к барбершоперам-баристам я ходил и мог бы поддержать разговор о событиях спорта и личной жизни знаменитостей, то так бы вышло, что я был бы и счастливее.
Вообще рассказывать про правильные и неправильные ценности и полезности в основном любят фанаты очень людоедских философий, но не будем вскрывать эту тему.
Это было грубо и с переходом на личности, не надо так.
Почему не надо? Грубость норм, мы тут уже выяснили (и вы сами за это топили), переход на личности, как я уже написал выше, тоже был выше. Ну и вообще, можете списать это на эмоциональную реакцию, ведь мы все же люди.
В том, что принято относить к конспирологии
Я лично вообще считаю, что Торвальдс и ко отрабатывают корпоративные деньги, а на не-корпах (вернее, не-платиновых спонсорах) срываются просто потому, что на платиновых спонсорах не сорвёшься.
Нейминг макроса Торвальдсу не понравился? Ну ничего, на замены на инклюзивный нейминг мастеров-мейнов-слейвов от интела он тихонечко молчал, нельзя же платинового спонсора linux foundation против повесточки гладить.
Сам макрос Торвальдсу не нравится? Ну ничего, бешеное количество сгенерённого кода в AMD-дровах ему норм. AMD — тоже спонсор (правда, не LF, но opensuse).
Или там, не знаю, дублирование слоёв в bcachefs и в версии райзера от Шишкина Торвальдсу не нравится? Ну ничего, такое же дублирование в btrfs ему более чем норм, ведь btrfs педалируется, скажем, той же Метой (иронично, что текст письма выше от @Idakopas выше это прямо говорит), которая тоже платиновый спонсор.
Торвальдс — это просто местный царёк с плохим воспитанием, который прекрасно знает, кого можно на три буквы регулярно слать, а с кем лучше не конфликтовать, и вполне себе стоит по струночке смирно и засовывает представления о прекрасном «в деле своей жизни», когда политика того требует (а, учитывая коммерциализированность линукса, она того требует часто).
Да, мемоизации нету. Пример то не мой. Но это не сильно меняет дело.
Только алгоритм получается не такой же, и код решает не ту же задачу, и вообще, почему бы не написать на C# какой-нибудь hello world а потом говорить, что эта разница не сильно меняет дело?
В отлчие от меня, вы прекрасно поняли что это =)
Вы хотите сказать, что хаскелисты в целом более подкованы в разных языках и имеют более широкий кругозор? Мне приятно, спасибо! Но не уверен, что это аргумент в ту сторону, за которую вы топите.
А если чуть серьёзнее, то я вам просто предлагаю подумать, что вы не родились со знанием синтаксиса сиподобных языков, и поэтому считать, что сиподобный синтаксис априори лучше, не стоит. Знакомее для среднего программиста? Да, пожалуй. Если это единственный контраргумент, то я готов с ним жить.
А тут такой аргумент, извините, не канает. Когда в компилляторе чуть ли не миллионы строк кода, не смогли добавить оператор взятия по индексу...
А зачем он нужен в компиляторе, когда его можно сделать на уровне библиотек? Можно, в конце концов, импортировать ! не qualified, а напрямую, и писать str ! idx. Чем это хуже вашего варианта?
И на уровне библиотек можно сделать много чего другого интересного. Можно сделать, скажем, !? :: ByteString → Int → Maybe Char, чтобы сразу было понятно, как выход за границы обрабатывается. Сможете на C# или Java нарисовать такой безопасный оператор индексирования для тамошних строк, не теряя обычный?
А если мы обсуждаем вообще хаскелеподобные языки, то можно вспомнить ту же агду, где можно определять вообще произвольные операторы в миксфиксной нотации, и там вполне можно сделать ровно ваше str [ idx ] (с пробелами вот, разве что), тоже вполне на уровне библиотек.
Олсо,
не смогли
Есть некоторая разница между «оказалось не нужно» и «не смогли».
Так а что тут угадывать то ?
А что угадывать в s1char == s2 'BS.index' (j - 1)?
Но для человека, который умеет вычислять мат выражения со скобками, порядок в вашем примере очевиден!
Но это не матвыражение! Вдруг это значит «сначала вызвать foo == callFun, а потом применить результат к bar»?
Ваши вопросы к хаскелю у меня почему-то читаются примерно так же.
Да, все так говорят, потому что думают так в "фазе синтеза". А вот когда человек читает свой или, упаси бог, чужой код, он делает это в "фазе анализа".
Я только процитирую себя ещё раз:
Тексты, учебники, доказательства теорем, что угодно, выигрывают в читабельности, когда в каждый момент времени вы понимаете, нахрена вы читаете данную конкретную строчку. А так как дара предвиденья у вас нет, то это значит, что эта строчка была упомянута выше (и вы его либо разбираете подробно, либо скипаете, если она вам с учётом контекста выше сейчас неинтересна).
Самые глубокие детали не имеют смысла без общего контекста.
Сначала нужно изучить всё что туда входит, затем вернуться назад и понять как оно меж собой связано.
Зачем? Вы сначала изучаете, какие свойства должны быть у того, что туда входит, чтобы оно имело смысл, а потом их проверяете.
В C# мне не надо вспоминать что "у пробела" приоритет выше...
Да, вы помните, что там у скобочек приоритет выше. И что у «запятой» приоритет тоже выше (в функциях многих аргументов).
В этом "однострочнике" я кроме прочего должен считать сколько аргументов у функции foldl'
Это известная библиотечная функция, одна из базовых.
и пытаться понять порядок вычисления.
Зачем?
Но используют почему то именно $. Предположу что писать так удобнее В таком случае Хаскель как и Lisp - язык для одного - кто пишет, тот и читает потом.
Так если (все?) используют $, то, наверное, всем и удобнее? У меня почему-то нет никаких вопросов к чужому коду с $. И к коду с & нет (это как $, только слева направо).
Хотите, я вам на хаскеле плохо сделаю =)
И даже мельком глядя на ваш код, я смогу понять, что он не лезет в IO, не общается с сетью, не имеет глобального состояния, и так далее.
Это другая функция. Мы всё-таки программирование обсуждаем, давайте терминологию использовать точно.
Ну так и как получить результат то из Parser a ?
Воспользоваться данной автором библиотеки функцией runParser :: String → Parser a → ParseResult a. Вы не можете получить результат парсинга, не применив парсер к какой-то строке, хотя парсер — монада.
Допустим, если у меня библиотека, которая на вход ждет (String, a) то единственный мой вариант это заворачивать ВСЕ ее функции в монаду теперь ?
Зачем? Что конкретно ваша библиотека делает? Приводите примеры — обсудим, как бы это выразилось.
Какой ответ вы от меня то хотите ? Не я эе это заявляю. Я уже кажется ответил что это также странно, как и ваше заявление.
Но эти заявления регулярно видны в тредах про ООП. Давайте я вас в следующий раз в такой тред позову, и вы там напишете что-нибудь про патчинг компилятора или #define private public, хорошо?
Скомпилированные тоже ? Вы же прекрасно поняли про какой сценарий я говорю
Если честно, то нет, не понял. Я ни разу не подключал к своему проекту на хаскеле библиотеку, к которой у меня не было исходников.
Впрочем, в проектах на плюсах за лет 15 работы программистом я работал с библиотекой без исходников ровно один раз.
Это лишь выливается в то, что хаскелисты пишут всё с нуля до чего могут дотянуться.
Это не обязательно. Вы вполне можете использовать эту библиотеку, просто она будет в IO, и, скажем, main-модуль, который её импортирует, не будет safe.
В hackage дофига пакетов, не вижу проблем.
Есть ещё -XTrustworthy, но не будем вскрывать эту тему.
Ну т е бинарные библиотеки в этом режиме использовать нельзя...
См. п. 1 выше.
У вас будет какая-то сложная бизнес-логика с safe haskell, и будет импортирующий всю ансейф-ерунду главный модуль, который будет прокидывать всё небезопасное куда надо.
А в моей практике это самые просты и безобидные ошибки - они очевидны при первом же запуске. Устраняются добавлением пропущенного.
Это если код написали вы и только что. А если код написали не вы, а слегка поправили чужой, и он начал вести себя плохо, то тогда начинается веселье.
А вот с lazy-семантикой можно долго пытаться понять почему FooQuux() вызвался раньше чем FooBuzz(), хотя вроде в коде написано в правильном порядке
И в каком случае при ленивой семантике это даёт наблюдаемые различия в поведении (кроме, возможно, перфа, но с оптимизирующими компиляторами вы и в мире C++ не можете быть ни в чём уверены)?
Парсеров на комбинаторах полно и в той же Java и в c#. Вполне работают в пределах своей низкой эффективности
Покажете примеры?
(Да, как у любого бэктрэк-парсера, у них низкая эффективность. Не вижу причин это приводить как пример превосходства ФП-языка)
attoparsec у меня на практике был плюс-минус на уровне сгенерированных ragel парсеров, современный flatparse ещё быстрее.
Чего такого сложного требуют остальные монады ?
Чистоты. В императивных языках весь код живёт в IO, ST и так далее, одновременно.
Впрочем, да, нормальное Maybe вы не сделаете в той же джаве, потому что в джаве ссылки — nullable. У вас всё в каком-то смысле в Maybe.
А, ну и ещё и синтаксиса, да. Покажите, как бы вы сделали Maybe в C++ (или в джаве), и как будет выглядеть соответствующий код.
Здесь дело не в технической сложности, а в том, что после этих трансформаций писать на языке становится сложнее. А ещё хуже, что сложнее становится понимать написанное.
Потому что в императивных языках синтаксис для этого не предназначен. Я рядом показывал пример с checkedOverflow — то, что на хаскеле выражается в 3-4 строки, на плюсах выражается в десяток строк, либо требует таскать кучу всего в and_then.
Новые почему не создаются ? Или вернее сказать, почему все созданные новые хаскель-подобные языки остаются не популярными ?
Потому что на этих языках тяжело делать фигак-фигак и в продакшен.
Для законопроектов (которые не обязательно получаются законами) лучше дописывать «bill».
Ощущение, что среди разработчиков Хабра завелись вайб‑кодеры — то страница недавно намертво зависала, то перестал работать переход по новым комментариям
То же самое всю прошлую неделю. «Ответить» зависает (но не всегда), переход к новым зависает, иногда даже жамкнуть по нику зависает. И зависает в двух разных десктопных и двух разных мобильных браузерах.
Зря влез в политику на правой стороне. Против людей слева таких медиакампаний нет, хотя там и «зиги» кидают, и к восстанию подстрекают, и много чего другого интересного говорят.
Они есть, но ИМХО это меньшинство (не стоит всех судить по stonetoss'у). Среднего избирателя справа Линдочка наша Грэм вполне представляет со своими сентенциями в духе «если мы отвернёмся от Израиля, то Бог отвернётся от нас», и тот же упомянутый мной IABA поддерживает 45-50% республиканцев (а против — примерно вдвое меньше).
Когда глава многомилиардной корпорации кидает зиги на инаугурации президента, то после этого сложно относиться к нему позитивно.
Тут главное — иметь очень избирательное зрение, чтобы не-зиги воспринимать как повод не любить человека, а настоящие зиги в других контекстах игнорировать.
Я уж молчу про его руководство в DOGE, когда он бездумно "оптимизировал" государственные расходы, не пытаясь толком ни в чём разобраться.
От tmux-сессии с рабочим проектом отсоединился, полчаса-час почитал книжку — всё, выветрилось, можно подключаться к tmux-сессии с личным проектом.
Есть некоторая разница между «не зависит от» и «не обращает внимания на/не фанатеет по».
Я не фанатею по apple и не тащусь по новым айфонам, но я завишу от apple потому, что clang/llvm — один из моих основных инструментов.
Лучше только то, что реализуемо на практике. Если ваша теория нереализуемая на практике и разлетается от малейшего дятла в пух и прах, то грош ей цена, как бы приятно она ни звучала для вас.
Большинство людей создаёт семьи не холодным расчётом, а с привлечением эмоций, и, если вкратце, эмоции очень сильно ломают адекватное реалистичное восприятие себя, партнёра, и ваших отношений. Воспитанный в такой парадигме человек рискует оказаться в очень паршивых отношениях и не распознать их достаточно рано.
Отсутствие коммерциализации по определению означает отсутствие возможности получить прибыль, поэтому логическая ошибка (или, вернее, внутренняя неконсистентность) скорее у вас.
Я понимаю, что вы хотите сказать (капитализм с возможностью коммерциализации плохо, коммунизм без возможности коммерциализации хорошо, там все сразу бабочками запукают вообще), но у вас это не получится сказать без того, чтобы заодно потребовать изменить природу человека (как всегда нужно для коммунизма).
Почему вы считаете, что одурачены те люди, которые ходят к психологам и в фитнес-центры, а не, скажем, вы, подспудно таким образом демонстрирующий более высокий статус в вашей системе ценностей (luxury beliefs, вот это всё)?
Иными словами, можно как-то определить, какой из этих случаев реализуется на самом деле в нашем мире?
Я стригусь раз в год, деля волосы на два пучка, симметрично отводя их вперёд и отрезая от них триммером от бритвы всё, что ниже примерно ключицы.
Сможете объяснить мне, почему эта потребность разумная, а не «парикмахерские продают иллюзию, что за деньги можно купить благосклонность окружающих»?
Это, мягко скажем, не так.
SNAP (фудстампы) плавно уменьшаются на 30 центов от каждого доллара заработка поверх некоторых стандартных вычетов, включая затраты на обогрев, воду и так далее (которые, кстати, тоже могут субсидироваться).
SSI (для инвалидов, по нему много фрода в упомянутых выше гетто) — аналогично уменьшаются медленнее роста дохода.
Medicaid (страховка здоровья) — продолжает покрываться целиком до примерно 20-35 тысяч (в зависимости от количества детей) в год, после этого — тоже плавно спадает, и какие-то подачки от государства мне калькулятор обещал даже для дохода в 60 тыщ в год (а это уже почти медиана).
И так куча других выплат. Единственная выплата, падающая почти так же быстро, как доход — TANF, но про неё и так никто не вспоминает, и она очень специфична в зависимости от конкретных штатов.
Поэтому, пожалуйста, хватит распространять очередное враньё от считающих, что помочь бездельникам можно только большим перераспределением денег от небездельников.
Самое главное после этого — начать регулярно рассказывать, что на самом деле это ерундовое занятие, и в обществе не котируется, и на хлеб так совсем скоро не заработаешь, и вот на самом деле надо вот…
Чуть позже ты, конечно, понимаешь, что это всё равно твоё предназначение, но ты уже презираешь то ли его, то ли самого себя за любовь и страсть к такому низкому и тупому занятию.
Тут главное — не переборщить с попытками нормализации ситуации искусственным путём, а то
Вы почему-то считаете, что полезность — это обязательно соответствие вашим личным представлениям о прекрасном, а это не так.
Продают экспириенс, поднимают настроение от взаимодействия с другим человеком, и постоянная маникюрщица — ещё один элемент социального круга общения. Ради этого клиентка маникюрщиц вполне может обменять несколько часов своего труда (сообразно своей зарплате) на поход к маникюрщице.
Формирует точки соприкосновения и объединения групп людей. Сигнальная роль, где-то из той же серии, что и вера в одного и того же бога, в один и тот же национальный миф, и так далее. Социальный клей.
А желание объединяться у людей в крови в прямом смысле, поэтому они более чем готовы потратить несколько часов своего труда на то, чтобы купить модную шмотку для демонстрации принадлежности группе и своего статуса в ней.
Когда я не покупаю новые вещи и хожу в футболках с дырками, кстати, я делаю точно то же: демонстрирую свой статус через демонстрацию своей системы ценностей, которую я очевидно считаю более
метастазнойметастатусной, чем основанная на шмотках и изучении частной жизни знаменитостей система.ХЗ, конспирология какая-то.
Демонстрация статуса, очевидно. Польза обществу — перераспределение доходов (строители этих яхт получают деньги за свою работу, и далее по цепочке обмена деньгами).
Хочу иметь возможность поехать куда хочу и когда хочу ⇒ покупаю автомобиль. Хочу — еду в тренажерку ночью, хочу — еду в поле за 50 км от города, хочу — еду в соседний город. Поэтому тут уже лично я готов потратить несколько месяцев своего труда, чтобы купить автокорыто.
Здоровые люди обычно не хотят, чтобы, когда они стали больными, их эвтанировали, поэтому вера в социальное здравоохранение/universal healthcare/etc позволяет под общественное одобрение строить государственную медицину. Короче, польза — в успокоении.
Дальше аналогично, смысл вы поняли, надеюсь. Но что про онлифанщиц вы не вспомнили, я рад!
И пытаться рассказывать людям, что представления о полезности у них какие-то неправильные — затея довольно гиблая. Я не хожу к маникюрщицам (а также к барбершоперам, баристам, астрологам и коучам по личностному бизнес-росту), в гробу видал фэшн-индустрию (но про футболки с дырками уже писал), яхты тоже не хочу. Машина вот есть, разве что, это да. При этом, короче, я не то чтобы очень счастлив, и вполне возможно, что если бы к барбершоперам-баристам я ходил и мог бы поддержать разговор о событиях спорта и личной жизни знаменитостей, то так бы вышло, что я был бы и счастливее.
Вообще рассказывать про правильные и неправильные ценности и полезности в основном любят фанаты очень людоедских философий, но не будем вскрывать эту тему.
Всё так. Смены по 28 часов в сутки, и то за зарплату, которую хватает только на десяток яиц. Ни в коем случае нельзя в Штаты.
Почему не надо? Грубость норм, мы тут уже выяснили (и вы сами за это топили), переход на личности, как я уже написал выше, тоже был выше. Ну и вообще, можете списать это на эмоциональную реакцию, ведь мы все же люди.
Я лично вообще считаю, что Торвальдс и ко отрабатывают корпоративные деньги, а на не-корпах (вернее, не-платиновых спонсорах) срываются просто потому, что на платиновых спонсорах не сорвёшься.
Нейминг макроса Торвальдсу не понравился? Ну ничего, на замены на инклюзивный нейминг мастеров-мейнов-слейвов от интела он тихонечко молчал, нельзя же платинового спонсора linux foundation против повесточки гладить.
Сам макрос Торвальдсу не нравится? Ну ничего, бешеное количество сгенерённого кода в AMD-дровах ему норм. AMD — тоже спонсор (правда, не LF, но opensuse).
Или там, не знаю, дублирование слоёв в bcachefs и в версии райзера от Шишкина Торвальдсу не нравится? Ну ничего, такое же дублирование в btrfs ему более чем норм, ведь btrfs педалируется, скажем, той же Метой (иронично, что текст письма выше от @Idakopas выше это прямо говорит), которая тоже платиновый спонсор.
Торвальдс — это просто местный царёк с плохим воспитанием, который прекрасно знает, кого можно на три буквы регулярно слать, а с кем лучше не конфликтовать, и вполне себе стоит по струночке смирно и засовывает представления о прекрасном «в деле своей жизни», когда политика того требует (а, учитывая коммерциализированность линукса, она того требует часто).
Только алгоритм получается не такой же, и код решает не ту же задачу, и вообще, почему бы не написать на C# какой-нибудь hello world а потом говорить, что эта разница не сильно меняет дело?
Вы хотите сказать, что хаскелисты в целом более подкованы в разных языках и имеют более широкий кругозор? Мне приятно, спасибо! Но не уверен, что это аргумент в ту сторону, за которую вы топите.
А если чуть серьёзнее, то я вам просто предлагаю подумать, что вы не родились со знанием синтаксиса сиподобных языков, и поэтому считать, что сиподобный синтаксис априори лучше, не стоит. Знакомее для среднего программиста? Да, пожалуй. Если это единственный контраргумент, то я готов с ним жить.
А зачем он нужен в компиляторе, когда его можно сделать на уровне библиотек? Можно, в конце концов, импортировать
!неqualified, а напрямую, и писатьstr ! idx. Чем это хуже вашего варианта?И на уровне библиотек можно сделать много чего другого интересного. Можно сделать, скажем,
!? :: ByteString → Int → Maybe Char, чтобы сразу было понятно, как выход за границы обрабатывается. Сможете на C# или Java нарисовать такой безопасный оператор индексирования для тамошних строк, не теряя обычный?А если мы обсуждаем вообще хаскелеподобные языки, то можно вспомнить ту же агду, где можно определять вообще произвольные операторы в миксфиксной нотации, и там вполне можно сделать ровно ваше
str [ idx ](с пробелами вот, разве что), тоже вполне на уровне библиотек.Олсо,
Есть некоторая разница между «оказалось не нужно» и «не смогли».
А что угадывать в
s1char == s2 'BS.index' (j - 1)?Но это не матвыражение! Вдруг это значит «сначала вызвать
foo == callFun, а потом применить результат кbar»?Ваши вопросы к хаскелю у меня почему-то читаются примерно так же.
Я только процитирую себя ещё раз:
Самые глубокие детали не имеют смысла без общего контекста.
Зачем? Вы сначала изучаете, какие свойства должны быть у того, что туда входит, чтобы оно имело смысл, а потом их проверяете.
Да, вы помните, что там у скобочек приоритет выше. И что у «запятой» приоритет тоже выше (в функциях многих аргументов).
Это известная библиотечная функция, одна из базовых.
Зачем?
Так если (все?) используют
$, то, наверное, всем и удобнее? У меня почему-то нет никаких вопросов к чужому коду с$. И к коду с&нет (это как$, только слева направо).И даже мельком глядя на ваш код, я смогу понять, что он не лезет в
IO, не общается с сетью, не имеет глобального состояния, и так далее.Это другая функция. Мы всё-таки программирование обсуждаем, давайте терминологию использовать точно.
Воспользоваться данной автором библиотеки функцией
runParser :: String → Parser a → ParseResult a. Вы не можете получить результат парсинга, не применив парсер к какой-то строке, хотя парсер — монада.Зачем? Что конкретно ваша библиотека делает? Приводите примеры — обсудим, как бы это выразилось.
Но эти заявления регулярно видны в тредах про ООП. Давайте я вас в следующий раз в такой тред позову, и вы там напишете что-нибудь про патчинг компилятора или
#define private public, хорошо?Если честно, то нет, не понял. Я ни разу не подключал к своему проекту на хаскеле библиотеку, к которой у меня не было исходников.
Впрочем, в проектах на плюсах за лет 15 работы программистом я работал с библиотекой без исходников ровно один раз.
Это не обязательно. Вы вполне можете использовать эту библиотеку, просто она будет в
IO, и, скажем,main-модуль, который её импортирует, не будет safe.В hackage дофига пакетов, не вижу проблем.
Есть ещё
-XTrustworthy, но не будем вскрывать эту тему.См. п. 1 выше.
У вас будет какая-то сложная бизнес-логика с safe haskell, и будет импортирующий всю ансейф-ерунду главный модуль, который будет прокидывать всё небезопасное куда надо.
Это если код написали вы и только что. А если код написали не вы, а слегка поправили чужой, и он начал вести себя плохо, то тогда начинается веселье.
И в каком случае при ленивой семантике это даёт наблюдаемые различия в поведении (кроме, возможно, перфа, но с оптимизирующими компиляторами вы и в мире C++ не можете быть ни в чём уверены)?
Покажете примеры?
attoparsec у меня на практике был плюс-минус на уровне сгенерированных ragel парсеров, современный flatparse ещё быстрее.
Чистоты. В императивных языках весь код живёт в
IO,STи так далее, одновременно.Впрочем, да, нормальное
Maybeвы не сделаете в той же джаве, потому что в джаве ссылки — nullable. У вас всё в каком-то смысле вMaybe.А, ну и ещё и синтаксиса, да. Покажите, как бы вы сделали
Maybeв C++ (или в джаве), и как будет выглядеть соответствующий код.Потому что в императивных языках синтаксис для этого не предназначен. Я рядом показывал пример с
checkedOverflow— то, что на хаскеле выражается в 3-4 строки, на плюсах выражается в десяток строк, либо требует таскать кучу всего вand_then.Потому что на этих языках тяжело делать фигак-фигак и в продакшен.
Да.
Для законопроектов (которые не обязательно получаются законами) лучше дописывать «bill».
То же самое всю прошлую неделю. «Ответить» зависает (но не всегда), переход к новым зависает, иногда даже жамкнуть по нику зависает. И зависает в двух разных десктопных и двух разных мобильных браузерах.
Зря влез в политику на правой стороне. Против людей слева таких медиакампаний нет, хотя там и «зиги» кидают, и к восстанию подстрекают, и много чего другого интересного говорят.
Они есть, но ИМХО это меньшинство (не стоит всех судить по stonetoss'у). Среднего избирателя справа Линдочка наша Грэм вполне представляет со своими сентенциями в духе «если мы отвернёмся от Израиля, то Бог отвернётся от нас», и тот же упомянутый мной IABA поддерживает 45-50% республиканцев (а против — примерно вдвое меньше).
Тут главное — иметь очень избирательное зрение, чтобы не-зиги воспринимать как повод не любить человека, а настоящие зиги в других контекстах игнорировать.
Что сделал зря, по-вашему?