Dalam banyak bahasa (daftar yang luas, dari C ke JavaScript):
- koma
,argumen terpisah (mis.func(a, b, c)), sementara - titik koma
;memisahkan instruksi berurutan (misalnyainstruction1; instruction2; instruction3).
Jadi mengapa pemetaan ini dibalik dalam bahasa yang sama untuk loop :
for ( init1, init2; condition; inc1, inc2 )
{
instruction1;
instruction2;
}
alih-alih (yang tampaknya lebih alami bagi saya)
for ( init1; init2, condition, inc1; inc2 )
{
instruction1;
instruction2;
}
?
Tentu, foradalah (biasanya) bukan fungsi, tetapi argumen (yaitu init, condition, increment) berperilaku lebih seperti argumen dari fungsi dari urutan instruksi.
Apakah karena alasan historis / konvensi, atau adakah alasan yang bagus untuk pertukaran ,dan ;dalam perulangan?
;tidak menggunakan |?" (atau Mengapa kita menggunakan 'lain' bukan 'sebaliknya'? )) yang tidak berlaku untuk satu bahasa, tetapi sejumlah besar dari mereka. Sebuah jawaban yang misalnya "itu dibuat dalam C sebagai singkatan untuk sementara loop (dan beberapa pernyataan untuk inc baru dipikirkan kemudian), dan orang-orang tidak ingin mengubahnya untuk menghindari iritasi programmer" akan baik-baik saja.