Если честно, это какой-то трэш. Особо не ругайся - я как раз из тех, кто про мат.логику лишь слышал. Ну, ладно, больше, чем слышал, но уже давненько. Ежели сможешь объяснить почему так - буду рад.
Итак, с 5>3, 5<3 все понятно - сравниваются скалярные величины, в ответ выдается булевая переменная (1/0, выраженная текстом), здесь все ок.
Но! В первых двух примерах, оно что, кол-во символов во фразе со скалярной величиной сравнивает? Это что за бред? Не, я конечно все понимаю, мат.логика, то се, а нормальная логика сдохла, да? Это, в смысле, не к тебе претензия, я просто не знал, что так можно и точно бы никогда не догадался проверить. Мне бы в голову не пришло сравнивать число и считать буквы в текстовой переменной. При необходимости я бы именно посчитал символы, задал скалярной переменной эту величину и уже ее сравнивал. Долго, не вопрос, но логично!
Это как пример Lynx с тягой, но там все понятно, просто тяга не булевая, а вполне себе конкретная скалярная величина. Если бы ее значений было 2 - тяга есть 1 (true) тяги нет 0 (false), тогда все ок. If тяга {print "Мужики, тащи канистру, сливать соляру будем!".} else {print "вот Михалыч *****! Уже спер!".}
С последними четырьмя примерами все ок и моим словам нисколько не противоречат. Мы не сравниваем текстовые переменные и булевые. Сравнивается текстовое отображение булевой переменной. Не более. Тоже забавно, конечно, но по крайней мере не вынос мозга.
Сообщение отредактировал 21 декабря 2015 - 04:12