In molte lingue (un ampio elenco, da C a JavaScript):
- virgole
,
separate argomenti (ad es.func(a, b, c)
), mentre - i punti e virgola
;
separano le istruzioni sequenziali (ad esinstruction1; instruction2; instruction3
.).
Quindi perché questa mappatura è invertita nelle stesse lingue per i loop :
for ( init1, init2; condition; inc1, inc2 )
{
instruction1;
instruction2;
}
invece di (ciò che mi sembra più naturale)
for ( init1; init2, condition, inc1; inc2 )
{
instruction1;
instruction2;
}
?
Certo, for
è (di solito) non è una funzione, ma gli argomenti (ad esempio init
, condition
, increment
) si comportano più come argomenti di una funzione di una sequenza di istruzioni.
È dovuto a ragioni storiche / a una convenzione o esiste una buona logica per lo scambio di ,
e ;
nei cicli?
;
no |
?" (o Perché usiamo 'altra cosa' non 'altro'? )), che non è caso per una lingua, ma un gran numero di essi. Una risposta che, ad esempio, "è stata fatta in C come abbreviazione di while loop (e più dichiarazioni per inc sono state pensate solo in seguito), e la gente non ha voluto cambiarlo per evitare l'irritazione dei programmatori" sarebbe perfettamente soddisfacente.