Considerate questo codice # F che calcola un fattore di un numero:Come posso verificare se una sequenza è vuota in 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
In altre parole, se factors
è vuota, poi tornare n
. Altrimenti, estrai il primo elemento da factors
. L'obiettivo è quello di tenere conto di tutti i fattori tra 1 e (n/2) e n stessa dal 1 e n sono sempre fattori di n.
Il test factors = seq []
non funziona. Sono arrivato a questa sintassi, cercando in questo modo:
> seq {1 .. 100} |> Seq.filter (fun x -> false) ;;
val it : seq<int> = seq []
Tuttavia, non credo che seq []
è in realtà una sequenza vuota:
> Seq.empty = seq [] ;;
val it : bool = false
Come posso verificare se un sequenza è vuota?
Grazie. Questa è stata la prima risposta da una frazione di secondo! – user392226