Рассмотрим F # код, который вычисляет коэффициент ряда:Как проверить, нет ли последовательности в 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
Другими словами, если factors
пуст, а затем вернуться n
. В противном случае вытащите первый элемент из factors
. Цель состоит в том, чтобы учесть все факторы, между 1 и (п/2) и п сам по себе, так как 1 и п всегда факторы н.
Тест factors = seq []
не работает. Я пришел к этому синтаксису, глядя на это:
> seq {1 .. 100} |> Seq.filter (fun x -> false) ;;
val it : seq<int> = seq []
Однако, я не думаю, что на самом деле seq []
пустая последовательность:
> Seq.empty = seq [] ;;
val it : bool = false
Как я могу проверить, если последовательность пуста?
Спасибо. Это был первый ответ на долю секунды! – user392226