¿Por qué son simples las expresiones de bucle restringidas a rangos enteros?

De acuerdo con la especificación F # (ver§6.5.7), los bucles simples están delimitados por un entero (int aliasint32 aliasSystem.Int32) límitesstart ystop, p.ej.

for i = start to stop do
    // do sth.

Me pregunto por qué se requieren los límites de iteración para este tipo de bucle for.int32. Por que no permitiruint32? int64? bigint?

Soy consciente de que las expresiones de iteración de secuencia (for ... in ...) puede iterar sobre secuencias arbitrarias; que sin embargo requiere asignar un iterador y llamarMoveNext yCurrent y lo que no, y por lo tanto puede ser considerablemente menos eficiente de lo que podría ser un bucle plano (contador de incrementos, comparación, salto condicional). Para evitar eso, estás atascado con el usowhile y un contador de bucle de incremento manual ...

Por extraño que parezca, F #hace permitir que noint32 bucles, si elfor la expresión está envuelta en una expresión de secuencia, p.

seq { for i = 0I to 10I do
        printfn "%A" i }

Entonces, supongo que la pregunta es: ¿hay alguna razón en particular para permitir soloint32 para bucles? ¿Y por qué esta restricción no se aplica afor bucles envueltos enseq expresiones?

Respuestas a la pregunta(3)

Su respuesta a la pregunta