W wielu językach (szeroka lista, od C do JavaScript):
- przecinki
,oddzielne argumenty (np.func(a, b, c)), natomiast - średniki
;oddzielne instrukcje sekwencyjne (npinstruction1; instruction2; instruction3.).
Dlaczego więc odwzorowanie odwrócono w tych samych językach dla pętli :
for ( init1, init2; condition; inc1, inc2 )
{
instruction1;
instruction2;
}
zamiast (co wydaje mi się bardziej naturalne)
for ( init1; init2, condition, inc1; inc2 )
{
instruction1;
instruction2;
}
?
Jasne, forjest (zazwyczaj) nie jest funkcją, ale argumenty (czyli init, condition, increment) zachowują się bardziej jak argumenty funkcji niż sekwencji instrukcji.
Czy jest to spowodowane względami historycznymi / konwencją, czy też istnieje uzasadnienie dla wymiany ,i ;pętli?
;nie |?” (lub Dlaczego używamy „inny” nie „inaczej”? )), która nie jest sprawa dla jednego języka, ale duża ich liczba. Odpowiedź, że np. „Został napisany w C jako skrót dla pętli while (i wiele instrukcji dla inc było rozważanych dopiero później), a ludzie nie chcieli jej zmieniać, aby uniknąć irytacji programistów”, byłby w porządku.