考慮其計算一數目的因數這個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和(N/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 2010-11-05 07:04:15