consideran este # código F, que calcula un factor de un número:¿Cómo puedo comprobar si una secuencia está vacía en F #?
let n = 340339004337I
// A sequence of all factors:
let factors = seq { 1I .. n/2I} |> Seq.filter (fun x -> n % x = 0I)
// Pull off the first factor from the sequence:
let factor =
if factors = seq [] then
n
else
factors |> Seq.nth 0
En otras palabras, si factors
está vacía, y luego volver n
. De lo contrario, saque el primer elemento de factors
. El objetivo es dar cuenta de todos los factores de entre 1 y (n/2), y n sí mismo desde el 1 y n son siempre factores de n.
La prueba factors = seq []
no funciona. Llegué a esta sintaxis examinado esto:
> seq {1 .. 100} |> Seq.filter (fun x -> false) ;;
val it : seq<int> = seq []
Sin embargo, no creo seq []
es en realidad una secuencia vacía:
> Seq.empty = seq [] ;;
val it : bool = false
¿Cómo puedo probar si una secuencia está vacía?
Gracias. ¡Esta fue la primera respuesta por una fracción de segundo! – user392226