Бессметрная классика снова и снова.

Apr 15, 2015 15:55


  public boolean isRoot() {
      return (isMaster() && !isSlave()) || (!isMaster() && !isSlave());
  }

Leave a comment

Comments 17

feldgendler April 15 2015, 13:34:50 UTC
На первом курсе надо давать задачки на упрощение выражений вроде этого. С реальными примерами из code_wtf.

Reply

trailmax April 15 2015, 14:42:06 UTC
Да ладно, надо на последнем такие снова давать - чтобы не забывали.

Я такие решал на первом курсе пачками, лет восемь назад. Сейчас пришлось загуглить как называются правила и законы по которым это все упращается, хотя без названий правил их правильно применил при беглом осмотре кода.

Reply


trailmax April 15 2015, 14:39:29 UTC
Могу предположить что раньше было сложнее все, потом убрали кондиции, а упросить вырожение забыли.

Reply

hedin April 15 2015, 18:43:10 UTC
Всякое может быть, но там на первый взгляд не чему больше участвовать.
Думаю просто лог хода мысли автора.

Reply

feldgendler April 15 2015, 23:10:26 UTC
Могу предположить, что, наоборот, сначала была только левая половина выражения, потом стали искать баг и поняли, что ещё в одной ситуации нужно возвращать true, и добавили эту ситуацию в виде правой половины.

Reply


tophelm April 15 2015, 14:58:32 UTC
Автогенерённый код?

Reply

hedin April 15 2015, 18:43:38 UTC
Ни в коем случае. Практически domain.

Reply


ewg April 15 2015, 15:03:21 UTC
Вот вы смеетесь, но у меня был реальный случай, когда компилятор при любых настройках оптимизации считал, что код после некоего условия никогда не выполнится и в целях экономии выкидывал его из файла. Пришлось писать подобный костыль.

Reply

trailmax April 15 2015, 18:39:17 UTC
Что за компилятор такой?

Reply

ewg April 16 2015, 08:05:02 UTC
Какой-то из ранних Borland C++
Потом подобные фишки выкидывал AVR GNU C.

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

Reply

trailmax April 16 2015, 08:36:03 UTC
OO вот это крутой компилятор!

Reply


heilkitty_ru April 15 2015, 15:07:30 UTC

... )

Reply


Leave a comment

Up