Чтобы эта функция принимала на вход аргупент option? Не, в целом подход с lift функцией прикольный, но обработка ошибок в lift отсутствует полностью, так что для промышленной рвзработки такой код неприемлем.
В дополнение хочется хочется посмотреть на то, как монада разрулит ситуацию с функциями, которые принимают больше, чем один аргумент на вход и/или возвращают кортеж значений
Я считаю, что проблема всех туториалов про монады в том, что все объяснение монад ВСЕГДА заканчивается на Option, ценность которой, по моему мнению, около нуля, т.к. с помощью этой невероятно тупой монады не написать НИЧЕГО полезного. В реальном мире мы всегда хотим знать не только, что "что-то" пошло не так, но ещё и "где".
Для этого есть другая монада (Result), но с ней начинается другая беда - ошибок в программе может быть больше тысячи. Бросая даже один тип исключения мы всегда получим stacktrace с точным местом ошибки, а для Result придется иметь кучу возможных возвращаемых значений + сложности с обработкой этих ошибок. Кстати, в целом всегда показывают монады в стиле: "смотрите какой у нас классный код линейный", но никогда не показывают код обработки ошибок этого линейного кода.
Также всегда остаются за рамками обсуждений все вопросы связанные с соединением двух разных монад. Нефига не очевидно, как из одной монады получаются другие, как они между собой взаимодействуют и главное - почему это всё лучше обычного императивного подхода.
У нас есть носитель сигнала (ток, напряжение), у которого есть характеристики (амплитуда, фаза, частота). Изменяя характеристики мы сигнал кодируем. Соответственно изменяя одну из характеристик, мы меняем и регистрируемый на другом конце сигнал.
Проблема в том, что изменение чего либо в цепи требует энергии. Но тут сразу прикол в том, что получается эту энергию надо откуда-то взять. Но чесслово из схемы транзистора не очень понятно откуда эта энергия берётся)
Меня лично усиление сигнала всегда ломало мозг, ведь у нас есть закон сохранения энергии. Раз в замкнутой (!) цепи сигнал усилился, значит где-то он должен был взять энергию, но где?
Так и в медицине так-то риски вполне себе оцениваются. И хуже того, пациентов обязаны с ними ознакомить, а значит и финальное решение принимают сами пациенты.
Да ничего, вроде последние года 4 справляюсь. Точнее как. Я поначалу это дело любил, потом возненавидел, потом перегорел. Сегодня программирую с нулевым интересом к процессу. Мне плевать что программировать, на чем программировать, и уж тем более плевать на то, меняю я мир или не меняю. Лучшая работа та, на которой надо меньше делать за больше денег.
И, внезапно, такой подхол к работе сделал меня куда более ценным сотрудником, чем я был. Теперь я смотрю на задачуэи по принципу: "как мне из А получить Б", а не "как классно, можно будет поковыряться во фреймворке Х, пока я делаю задачу". Я делаю задачи не так, как мне нравится, а так, как понравится тем, кто эти задачи будет принимать, чтобы потом больше не делать нечего. Я автоматизирую вещи, которые меня откровенно достали (а достает мне многое), а не те, которые весело автоматизировать.
Да и я вот уже лет 6 в профессиии и 9 лет как впервые написал hello World. Работаю на какой-то работе, получаю свою сеньорскую зарплату, но чёт до сих пор в пустыне отчаяния нахожусь)
У нас в школе не было нормальной информатики, да и программировать нас тоже не учили. Но я интереса ради открыл в 11-м классе последние страницы учебника по информатике, где объяснялся базовый синтаксис visual basic) Вот таким нехитрым образом я открыл для себя мир программировния :)
Если надо, перед передачей упаковать в Option
Не занимаемся. Чем этот действительно занимается - так это заметанием ошибок под ковёр.
Вот положим у меня цепочка вычислений из, ну скажем, 15 преобразований. Вернулся None. Надо понять почему. Как?
Чтобы эта функция принимала на вход аргупент option? Не, в целом подход с lift функцией прикольный, но обработка ошибок в lift отсутствует полностью, так что для промышленной рвзработки такой код неприемлем.
Что ж, в функции getSecondArg что-то пошло не так. Надо это залогировать и послать сообщение юзверю. Как?
Чем это лучше, чем просто текст в стиле: "на такой-то строке, в таком-то тэге, у вас неправильный атрибут"?
Зачем печатать что-то непонятное (дерево тэгов), если можно просто напечатать сам HTML. Он вполне себе читаемый.
Это я в курсе, но покажите мне код (с монадамм) после этого) Потому что это будет нечто невразумительное
А можно просто переписать первую и не городить бессмысленные конструкции
Прочитал, но пока не понял, чем это удобнее обычного
В дополнение хочется хочется посмотреть на то, как монада разрулит ситуацию с функциями, которые принимают больше, чем один аргумент на вход и/или возвращают кортеж значений
Я считаю, что проблема всех туториалов про монады в том, что все объяснение монад ВСЕГДА заканчивается на Option, ценность которой, по моему мнению, около нуля, т.к. с помощью этой невероятно тупой монады не написать НИЧЕГО полезного. В реальном мире мы всегда хотим знать не только, что "что-то" пошло не так, но ещё и "где".
Для этого есть другая монада (Result), но с ней начинается другая беда - ошибок в программе может быть больше тысячи. Бросая даже один тип исключения мы всегда получим stacktrace с точным местом ошибки, а для Result придется иметь кучу возможных возвращаемых значений + сложности с обработкой этих ошибок. Кстати, в целом всегда показывают монады в стиле: "смотрите какой у нас классный код линейный", но никогда не показывают код обработки ошибок этого линейного кода.
Также всегда остаются за рамками обсуждений все вопросы связанные с соединением двух разных монад. Нефига не очевидно, как из одной монады получаются другие, как они между собой взаимодействуют и главное - почему это всё лучше обычного императивного подхода.
Это не так чтобы корректное объяснение.
У нас есть носитель сигнала (ток, напряжение), у которого есть характеристики (амплитуда, фаза, частота). Изменяя характеристики мы сигнал кодируем. Соответственно изменяя одну из характеристик, мы меняем и регистрируемый на другом конце сигнал.
Проблема в том, что изменение чего либо в цепи требует энергии. Но тут сразу прикол в том, что получается эту энергию надо откуда-то взять. Но чесслово из схемы транзистора не очень понятно откуда эта энергия берётся)
В таком случае на источнике энергии должен формироваться такой же сигнал, но инвертированный по фазе, но этого не происходит
Выбор небогат:
Содержимое предыдущих сообщений - гавно
Обсуждаемая тема гавно, но все что мы можем - это смириться
Собеседник тупой, т.к. сам не знает чё имел ввиду
Я не вижу причинно-следственной связи между
и
Самое ёмкое описание реальности, что я в жизни встречал)
Меня лично усиление сигнала всегда ломало мозг, ведь у нас есть закон сохранения энергии. Раз в замкнутой (!) цепи сигнал усилился, значит где-то он должен был взять энергию, но где?
Так и в медицине так-то риски вполне себе оцениваются. И хуже того, пациентов обязаны с ними ознакомить, а значит и финальное решение принимают сами пациенты.
Да ничего, вроде последние года 4 справляюсь. Точнее как. Я поначалу это дело любил, потом возненавидел, потом перегорел. Сегодня программирую с нулевым интересом к процессу. Мне плевать что программировать, на чем программировать, и уж тем более плевать на то, меняю я мир или не меняю. Лучшая работа та, на которой надо меньше делать за больше денег.
И, внезапно, такой подхол к работе сделал меня куда более ценным сотрудником, чем я был. Теперь я смотрю на задачуэи по принципу: "как мне из А получить Б", а не "как классно, можно будет поковыряться во фреймворке Х, пока я делаю задачу". Я делаю задачи не так, как мне нравится, а так, как понравится тем, кто эти задачи будет принимать, чтобы потом больше не делать нечего. Я автоматизирую вещи, которые меня откровенно достали (а достает мне многое), а не те, которые весело автоматизировать.
Да, но есть другая - ошибка в ПО может стоить бизнеса. Или просто очень больших денег. Так что тут всё плюс/минус корректно.
Да и я вот уже лет 6 в профессиии и 9 лет как впервые написал hello World. Работаю на какой-то работе, получаю свою сеньорскую зарплату, но чёт до сих пор в пустыне отчаяния нахожусь)
У нас в школе не было нормальной информатики, да и программировать нас тоже не учили. Но я интереса ради открыл в 11-м классе последние страницы учебника по информатике, где объяснялся базовый синтаксис visual basic) Вот таким нехитрым образом я открыл для себя мир программировния :)