Suite de my previous question, pourquoi CShell est-il si différent de C?Pourquoi les opérateurs sont-ils correctement associatifs dans CShell qui restent associatifs dans C?
- 4 - 3 + 1 = 2 à C
- 4 - 3 + 1 = 0 dans cShell.
Des idées?
Suite de my previous question, pourquoi CShell est-il si différent de C?Pourquoi les opérateurs sont-ils correctement associatifs dans CShell qui restent associatifs dans C?
Des idées?
Généralement, la notation traditionnelle est de gauche à droite (associative de gauche) dans les papiers humains. Donc, pour l'homme (qui a utilisé cette notation bien avant c, csh ou même toute notion d'ordinateurs):
4 - 3 + 1 = (4 - 3) + 1 = 1 + 1 = 2
Pourquoi? Je suppose que la meilleure réponse est parce que. C'est la même chose qu'avec la conduite à gauche ou à droite de la route. Peu importe de quel côté tant que tout le monde utilise la même chose.
IMHO le csh est faux car il est contre-intuitif. Peut-être était-ce une erreur (ils voulaient gauche associative mais codée à tort) et devient héritage comme d'autres choses déjà dépenées sur ce point.
Différentes personnes ont écrit les produits, et ils avaient des vues différentes sur la façon de gérer les calculs. Et puisque le C Shell a été écrit en second lieu, je pense qu'ils sont en faute pour ne pas suivre l'exemple de la langue parente nominale.
Apparemment, csh exige des espaces entre les opérateurs arithmétiques et, selon la programmation Csh Considered Harmful (http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/) – bk1e
Juste pour ajouter à la frivolity, dans tcsh (pour lequel '/ bin/csh' est souvent un lien symbolique),' 4 - 3 + 1' est évalué à '2'. –