Почему операторы справа ассоциативны в CShell, а слева ассоциативны в C? - PullRequest
1 голос
/ 18 июня 2009

Исходя из моего предыдущего вопроса , почему CShell так отличается от C?

  • 4 - 3 + 1 = 2 в C.
  • 4 - 3 + 1 = 0 в CShell.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 20 июня 2009

Как правило, традиционные обозначения слева направо (слева ассоциативно) в человеческих работах. Итак, для людей (которые использовали это обозначение задолго до c, csh или даже любого другого понятия о компьютерах):

4 - 3 + 1 = (4 - 3) + 1 = 1 + 1 = 2

Почему? Я думаю, что лучший ответ, потому что. Это то же самое, что и при движении по левой или правой стороне дороги. Это действительно не имеет значения, с какой стороны, пока все используют одно и то же.

ИМХО csh не так, как это нелогично. Возможно, это была ошибка (они хотели оставить ассоциативными, но неправильно закодированы) и стать наследством, поскольку от этого уже зависели другие вещи.

0 голосов
/ 18 июня 2009

Разные люди написали продукты, и у них были разные взгляды на то, как обрабатывать вычисления. И поскольку C Shell была написана второй, я думаю, что они виноваты в том, что не последовали примеру номинального родительского языка.

...