Как стать автором
Обновить
1
0

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

Отправить сообщение
НЛО прилетело и опубликовало эту надпись здесь

2. Функции

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

Мне кажется что человек не в теме совершенно не поймет о чем идет речь. Вероятно, стоило упомянуть что это First-class function.

Аналогично для п.6 (возможно стоило сказать что делает этот код).

Итого (имхо): непонятно для кого статья.

Начинается все с картинки, с кодом вида:

if status == 1:  # непонятно что за 1

после чего рекомендуют воспользоваться перечислениями.

При этом кончается все с кодом вида:

someDict = {'key1': 1}

и тут хочется спросить: почему не следуют своим же рекомендациям?

Почему в качестве ключа словаря используют непонятную строку? Вот же Enum.

Ну расскажу я, как сделать формально верифицированное красно-чёрное дерево или сортировку, неужто это будет полезно в контексте этой дискуссии?

Это будет полезно в контексте хабра. Лично я очень хотел бы видеть подобные статьи на данном сайте и был бы благодарен за такую статью.

Никакого "исторически сложилось" здесь нет. Это осознанное решение.


Нужны проверки (медленнее и безопаснее) — пользуйтесь std::optional::value или std::optional::value_or.
Не нужны проверки (быстрее и опаснее) — пользуйтесь std::optional::operator->, std::optional::operator*.


Интерфейс не ограничивает пользователя в возможностях.

Спорное утверждение.
Текстовые редакторы с плагинами или IDE позволяют редактировать код быстрее чем печатать.

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


Пример: необходимо реализовать большую фичу, чтобы ее реализовать необходимо выполнить следующие шаги:


  1. шаг 1 (отрефакторить)
  2. шаг 2 (добавить новую мелкую фичу)
  3. шаг 3 (реализовать большую фичу)

Ветка с большой фичей будет выглядеть следующим образом:


  1. merge "шаг 1" into "большая фича"
  2. merge "шаг 2" into "большая фича"
  3. merge "шаг 3" into "большая фича"
  4. commit 1
  5. ...
  6. commit n

Смысл в том, что крупные шаги можно отследить по merge commit'ам.

В плане анализа много диагностик прокачены для поиска специфичных ошибок для Qt.

Спасибо за инфу.

Напомните пожалуйста: есть ли в PVS поддержка/интеграция с Qt?
(какие-нибудь особые правила; что-то наподобие clazy)

Категорически согласен.
(Поставить плюс не могу, поэтому пришлось написать данный комментарий)

Я слепой… Использовался git merge -s ours

Понять не могу: как получится этот коммит afea493a?
Если я мержу changekiller в master, то появляется конфликт и 2 варианта:


  • решаем конфликт в пользу changekiller — мерж-коммит не пустой (видно изменение)
  • решаем конфликт в пользу master — мерж-коммит пустой, но и в master ожидаемое 3, а не 4

Буду признателен если кто-нибудь распишет последовательность действий.

Большое спасибо за развернутый ответ (вижу, вы в теме) %)
Больше вопросов нет.

Благодарю за gist (на самом деле в статье присутствует весь код, просто оно у меня не собиралось из-за неподходящих версий kotlin'а и jdk) и за статью (поставил бы +, но недостаточно кармы для голосования).


Вопросы:


  • зачем Order реализует интерфейс Monoid?
  • ComparatorMonoid::plus() — не делает ли данная функция лишние сравнения? (я так понял что делает; хотя смысл сравнивать дальше есть только в случае, если compare() вернул Order.EQ)

Где можно посмотреть код целиком?

А мальчик в это время: "одна конфетка здесь, другая там, еще пару раз повторю и дачу дострою (выберите любой другой способ траты денег)".


P.S. У меня нет представления о том, куда идут деньги из выплаченного штрафа. Это просто фантазия как и у автора комментария выше.

Шикарный пример, спасибо.

Благодарю за текстовую версию (голосовать нет возможности, поэтому в виде комментария).

Еще забавный порядок действий:


  if (is_binary_notation(input) ||
      is_hex_notation(input) ||
      is_octal_notation(input)) {
    return true;
  }

  if (input.empty()) {
    return false;
  }

Сначала выполнили кучу действий и только потом проверили пустая строка или нет.

  1. Я не ставил под сомнение работоспособность кода. Под сомнением находится только объяснение что делает этот код.
  2. Хорошо что у меня получилось обратить внимание на непонятный (в данном примере) consumers
  3. Ваши ответы порождают только больше вопросов:
    1. Всё дело в sleep у follow, что позволяет работать конкуррентно бесконечному циклу в треде
      т.е. без sleep() ничего работать не будет?
    2. Почему вы в своей версии multiplex() сделали именно так:
      yield from genfrom_queue(in_q)
      а не
      return genfrom_queue(in_q)

Предлагаю остановиться на том, что пример не ваш и был взят из «источника Бизли» (соответственно, мне надо обращаться к автору источника).

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность