> let a = [| 'a'..'d' |];;
val a : char [] = [|'a'; 'b'; 'c'; 'd'|]
Haz rebanar trivial:extraño comportamiento de la matriz de corte de
> a.[1..2], [1..2];;
val it : char [] * int list = ([|'b'; 'c'|], [1; 2])
Ahora intentarlo con la región vacía:
> a.[1..0], [1..0];;
val it : char [] * int list = ([||], [])
parece trabajar y razonable - nos dieron dos secuencias vacías.
pero fracasa aquí:
> a.[5..0];;
System.OverflowException: Arithmetic operation resulted in an overflow.
at <StartupCode$FSI_0018>[email protected]()
Stopped due to error
Por supuesto, no es una solución [| for i in [5..0] -> a.[i] |]
. Pero extraño el punto por el cual a.[5..0]
falla? ¿Por qué no solo devuelve una matriz vacía? ¿Alguna razón para tal comportamiento?
¿Sabes dónde está el rastreador de errores "oficial" para F #? – qehgt
Puede enviar un informe de error a fsbugs (at) microsoft (dot) com. – pad