Начнем с того, что вы, вероятно, не хотите писать код в точности так.Обычно точка с запятой имеет очень низкий приоритет, но литерал списка не является оператором, и код будет выглядеть следующим образом:
[a, (b; c), (d; e), f]
Это означает, что вы начинаетеотключить четыре командных конвейера параллельно (хотя два из них имеют только один элемент).Он будет оценивать a
, b
, d
, f
.Затем он выполнит результаты a
, затем результаты b
.Выполнение b
вызовет следующий шаг в конвейере команд, поэтому он оценит и выполнит c
.Затем он выполнит d
, затем оценит и выполнит e
, наконец он выполнит f
.
Итак:
a saw []
b saw []
c saw [a saw [], b saw []]
d saw []
e saw [a saw [], b saw [], c saw [a saw [], b saw []], d saw []]
f saw []