Обновить
4

Пользователь

0,1
Рейтинг
4
Подписчики
Отправить сообщение

И как мне потом передать в такую функцию объект User?

Если надо, перед передачей упаковать в Option

ошибки - это возможное отсутствие результата lookupUser или chargeCard, их обработкой мы и занимаемся

Не занимаемся. Чем этот действительно занимается - так это заметанием ошибок под ковёр.

Вот положим у меня цепочка вычислений из, ну скажем, 15 преобразований. Вернулся None. Надо понять почему. Как?

Чтобы эта функция принимала на вход аргупент option? Не, в целом подход с lift функцией прикольный, но обработка ошибок в lift отсутствует полностью, так что для промышленной рвзработки такой код неприемлем.

Что ж, в функции getSecondArg что-то пошло не так. Надо это залогировать и послать сообщение юзверю. Как?

  1. Чем это лучше, чем просто текст в стиле: "на такой-то строке, в таком-то тэге, у вас неправильный атрибут"?

  2. Зачем печатать что-то непонятное (дерево тэгов), если можно просто напечатать сам HTML. Он вполне себе читаемый.

Это я в курсе, но покажите мне код (с монадамм) после этого) Потому что это будет нечто невразумительное

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

Прочитал, но пока не понял, чем это удобнее обычного

cat path/to/file

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

Я считаю, что проблема всех туториалов про монады в том, что все объяснение монад ВСЕГДА заканчивается на Option, ценность которой, по моему мнению, около нуля, т.к. с помощью этой невероятно тупой монады не написать НИЧЕГО полезного. В реальном мире мы всегда хотим знать не только, что "что-то" пошло не так, но ещё и "где".

Для этого есть другая монада (Result), но с ней начинается другая беда - ошибок в программе может быть больше тысячи. Бросая даже один тип исключения мы всегда получим stacktrace с точным местом ошибки, а для Result придется иметь кучу возможных возвращаемых значений + сложности с обработкой этих ошибок. Кстати, в целом всегда показывают монады в стиле: "смотрите какой у нас классный код линейный", но никогда не показывают код обработки ошибок этого линейного кода.

Также всегда остаются за рамками обсуждений все вопросы связанные с соединением двух разных монад. Нефига не очевидно, как из одной монады получаются другие, как они между собой взаимодействуют и главное - почему это всё лучше обычного императивного подхода.

Это не так чтобы корректное объяснение.

У нас есть носитель сигнала (ток, напряжение), у которого есть характеристики (амплитуда, фаза, частота). Изменяя характеристики мы сигнал кодируем. Соответственно изменяя одну из характеристик, мы меняем и регистрируемый на другом конце сигнал.

Проблема в том, что изменение чего либо в цепи требует энергии. Но тут сразу прикол в том, что получается эту энергию надо откуда-то взять. Но чесслово из схемы транзистора не очень понятно откуда эта энергия берётся)

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

Выбор небогат:

  1. Содержимое предыдущих сообщений - гавно

  2. Обсуждаемая тема гавно, но все что мы можем - это смириться

  3. Собеседник тупой, т.к. сам не знает чё имел ввиду

Я не вижу причинно-следственной связи между

Вместо этого мы можем поменять функцию с правой стороны от оператора, чтобы она могла принимать тип User option, а не просто User

и

Нам нужно что-то, что принимает функцию в качестве входных данных и преобразует ее в другую функцию.

Самое ёмкое описание реальности, что я в жизни встречал)

Меня лично усиление сигнала всегда ломало мозг, ведь у нас есть закон сохранения энергии. Раз в замкнутой (!) цепи сигнал усилился, значит где-то он должен был взять энергию, но где?

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

Да ничего, вроде последние года 4 справляюсь. Точнее как. Я поначалу это дело любил, потом возненавидел, потом перегорел. Сегодня программирую с нулевым интересом к процессу. Мне плевать что программировать, на чем программировать, и уж тем более плевать на то, меняю я мир или не меняю. Лучшая работа та, на которой надо меньше делать за больше денег.

И, внезапно, такой подхол к работе сделал меня куда более ценным сотрудником, чем я был. Теперь я смотрю на задачуэи по принципу: "как мне из А получить Б", а не "как классно, можно будет поковыряться во фреймворке Х, пока я делаю задачу". Я делаю задачи не так, как мне нравится, а так, как понравится тем, кто эти задачи будет принимать, чтобы потом больше не делать нечего. Я автоматизирую вещи, которые меня откровенно достали (а достает мне многое), а не те, которые весело автоматизировать.

Практически во всем IT эта причина — ошибка опасна для жизни других людей — отсутствует.

Да, но есть другая - ошибка в ПО может стоить бизнеса. Или просто очень больших денег. Так что тут всё плюс/минус корректно.

Да и я вот уже лет 6 в профессиии и 9 лет как впервые написал hello World. Работаю на какой-то работе, получаю свою сеньорскую зарплату, но чёт до сих пор в пустыне отчаяния нахожусь)

У нас в школе не было нормальной информатики, да и программировать нас тоже не учили. Но я интереса ради открыл в 11-м классе последние страницы учебника по информатике, где объяснялся базовый синтаксис visual basic) Вот таким нехитрым образом я открыл для себя мир программировния :)

Информация

В рейтинге
4 075-й
Зарегистрирован
Активность