Информация об изменениях

Сообщение Re[9]: Элита! от 22.08.2018 14:40

Изменено 22.08.2018 15:01 De-Bill

Re[9]: Элита!
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, De-Bill, Вы писали:


DB>>>>В смысле, что он считал, что (a || b && c) эквивалентно ((a || b) && c), т.е. в порядке следования.

DB>>>>В том случае речь шла про javascript.
BFE>>>Кое-что проясняется...
BFE>>>Ну, а вы как считаете? Считаете, что у && приоритет выше, чем у || ?
DB>>Я не пойму, ты не понял ситуацию или просто на пустом месте хочешь удариться в демагогию?

BFE>Причём тут демагогия? На вопрос сложно ответить?


DB>>Если первое, то не важно как считаю я, есть документация. http://www-lia.deis.unibo.it/materiale/JS/developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence.html там найдёшь table of precedence.


BFE>И в этой документации легко найти внутреннее противоречие:


BFE>Цитирую из вашей ссылки:

BFE>

BFE>Operator precedence determines the order in which operators are evaluated. Operators with higher precedence are evaluated first.

BFE>

BFE>The following table is ordered from highest (19) to lowest (0) precedence.
BFE>...
BFE>6 Logical AND left-to-right … && …
BFE>5 Logical OR left-to-right … || …

BFE>Цитирую документацию отсюда:
BFE>

BFE>As logical expressions are evaluated left to right, they are tested for possible "short-circuit" evaluation using the following rules:

BFE> false && (anything) is short-circuit evaluated to false.
BFE> true || (anything) is short-circuit evaluated to true.

BFE>The rules of logic guarantee that these evaluations are always correct. Note that the anything part of the above expressions is not evaluated, so any side effects of doing so do not take effect. Also, note that the anything part of the above expression is any single logical expression (as indicated by the parentheses).


BFE>Т.е. "внезапно" операция с высоким приоритетом не вычисляется первой. Операции выполняются в порядке следования. Порядок следования для (a || b && c) не эквивалентен ((a || b) && c).


Ок, ясно, т.е. ты прекрасно понял, о чем идёт речь, но решил развести демагогию. Никто и не говорил о порядке фактического вычисления и способах его оптимизации. Operators precedence о другом, ты, конечно, можешь докапаться до составителей документации, что они и там и там используют слово evaluated без дополнительных комментариев, но не понятно, зачем это тебе? Ситуацию-то ты понял?
Re[9]: Элита!
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, De-Bill, Вы писали:


DB>>>>В смысле, что он считал, что (a || b && c) эквивалентно ((a || b) && c), т.е. в порядке следования.

DB>>>>В том случае речь шла про javascript.
BFE>>>Кое-что проясняется...
BFE>>>Ну, а вы как считаете? Считаете, что у && приоритет выше, чем у || ?
DB>>Я не пойму, ты не понял ситуацию или просто на пустом месте хочешь удариться в демагогию?

BFE>Причём тут демагогия? На вопрос сложно ответить?


DB>>Если первое, то не важно как считаю я, есть документация. http://www-lia.deis.unibo.it/materiale/JS/developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence.html там найдёшь table of precedence.


BFE>И в этой документации легко найти внутреннее противоречие:


BFE>Цитирую из вашей ссылки:

BFE>

BFE>Operator precedence determines the order in which operators are evaluated. Operators with higher precedence are evaluated first.

BFE>

BFE>The following table is ordered from highest (19) to lowest (0) precedence.
BFE>...
BFE>6 Logical AND left-to-right … && …
BFE>5 Logical OR left-to-right … || …

BFE>Цитирую документацию отсюда:
BFE>

BFE>As logical expressions are evaluated left to right, they are tested for possible "short-circuit" evaluation using the following rules:

BFE> false && (anything) is short-circuit evaluated to false.
BFE> true || (anything) is short-circuit evaluated to true.

BFE>The rules of logic guarantee that these evaluations are always correct. Note that the anything part of the above expressions is not evaluated, so any side effects of doing so do not take effect. Also, note that the anything part of the above expression is any single logical expression (as indicated by the parentheses).


BFE>Т.е. "внезапно" операция с высоким приоритетом не вычисляется первой. Операции выполняются в порядке следования. Порядок следования для (a || b && c) не эквивалентен ((a || b) && c).


Ок, ясно, т.е. ты прекрасно понял, о чем идёт речь, но решил развести демагогию. Никто и не говорил о порядке фактического вычисления и способах его оптимизации. Operators precedence о другом, ты, конечно, можешь докапаться до составителей документации, что они и там и там используют слово evaluated без дополнительных комментариев, но не понятно, зачем это тебе?