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.