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, for
adalah (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.