Ответ 1
Я получил MSIL от ildasm, который я отправлю здесь для того, чтобы кто-то из них (не раз) - это сообщество wiki time:
Быстрый (только сравнительные строки i
, как и остальные):
//000030: if i < 1000 then
IL_001f: ldloc.0
IL_0020: ldc.i4 0x3e8
IL_0025: bge.s IL_003b
//000031: if i < 1000 then
IL_0027: ldloc.0
IL_0028: ldc.i4 0x3e8
IL_002d: bge.s IL_0038
Slow:
//000039: if i < 1000 && i < 1000 then
IL_0084: ldloc.0
IL_0085: ldc.i4 0x3e8
IL_008a: bge.s IL_0097
IL_008c: ldloc.0
IL_008d: ldc.i4 0x3e8
IL_0092: clt
IL_0094: nop
IL_0095: br.s IL_0099
IL_0097: ldc.i4.0
IL_0098: nop
IL_0099: brfalse.s IL_00a4
С одной стороны, версия С# того же времени имеет одинаковые сроки для обеих версий.
Одна вещь, которую я заметил при разборке, заключалась в том, что переменные F # были Program.i и Program.a, поэтому я не уверен, есть ли какие-то помехи в F #, которых нет в С#.