В ответ на мой предыдущий вопрос, почему CShell так отличается из С?
- 4 - 3 + 1 = 2 in C.
- 4 - 3 + 1 = 0 в CShell.
Любые идеи?
В ответ на мой предыдущий вопрос, почему CShell так отличается из С?
Любые идеи?
Как правило, в человеческих документах традиционная запись слева направо (левая ассоциативная). Итак, для людей (которые использовали эту нотацию задолго до c, csh или даже любого понятия компьютеров):
4 - 3 + 1 = (4 - 3) + 1 = 1 + 1 = 2
Почему? Думаю, лучший ответ — потому что. Это то же самое, что и при движении по левой или правой стороне дороги. На самом деле не имеет значения, с какой стороны, пока все используют одно и то же.
ИМХО, csh неверен, поскольку он нелогичен. Возможно, это была ошибка (они хотели оставить ассоциативность, но неправильно закодировали) и стала устаревшей, поскольку от этого уже зависели другие вещи.
Продукты писали разные люди, и у них были разные взгляды на то, как обрабатывать вычисления. А поскольку C Shell был написан вторым, я думаю, что они виноваты в том, что не последовали примеру номинального родительского языка.
/bin/csh
часто является символической ссылкой),4 - 3 + 1
оценивается как2
. - person Keith Thompson   schedule 21.03.2013