Rozważmy następujący kod F #, które oblicza współczynnik liczby:Jak mogę sprawdzić, czy sekwencja jest pusta w 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
Innymi słowy, jeśli factors
jest pusty, a następnie powrócić n
. W przeciwnym razie ściągnij pierwszy element z factors
. Celem jest, aby uwzględnić wszystkie czynniki, między 1 a (n/2) i sam n od 1 do n zawsze czynniki n.
Test factors = seq []
nie działa. Przyjechałem w tej składni, patrząc na to:
> seq {1 .. 100} |> Seq.filter (fun x -> false) ;;
val it : seq<int> = seq []
Jednak nie sądzę seq []
jest właściwie pusta sekwencja:
> Seq.empty = seq [] ;;
val it : bool = false
Jak mogę sprawdzić, czy ciąg jest pusty?
Dzięki. To była pierwsza odpowiedź ułamkiem sekundy! – user392226