Дополнительным преимуществом, которое я не вижу в ответах здесь, является то, что синтаксис для присваивания основан на арифметике.
Теперь x = y = b = c = 2 + 3
означает что-то иное в арифметике, чем язык в стиле C; в арифметике это утверждение, мы заявляем , что x равен y и т. д., а в языке стиля C это инструкция, которая делает x равным y и т. д. после ее выполнения .
Тем не менее, между арифметикой и кодом все еще достаточно взаимосвязи, чтобы не было смысла запрещать то, что естественно в арифметике, если нет веской причины. (Другая вещь, которую языки C-стиля взяли от использования символа равенства, - это использование == для сравнения на равенство. Здесь, хотя, поскольку крайний правый == возвращает значение, такой вид цепочки был бы невозможен.)