, , , .
, false, false: Seq.forAll.
, :
let success = Seq.forAll evaluation myList
, TechNeilogys ()
let success = not (Seq.exists evaluation myList)
, evaluation , .
, , , .
, Seq.forAll , . , Seq.exists, Seq.takeWhile,...
, . .
1: - , , .
2: Seq.scan fold.
Seq.scan fold, , , .
, : Seq.last (Seq.scan folder initialState mySequence) = Seq.fold folder initialState mySequence
3: Seq.scan. : Seq.takeWhile, Seq.forAll, Seq.exists,...
None , , .
let allDistinct mySequence =
let folder state element =
match state with
| Some elementsSoFar when not (Set.contains element elementsSoFar) ->
Some (Set.add element elementsSoFar)
| _ ->
None
let initialState = Some Set.empty
let scanning = Seq.scan folder initialState mySequence
Seq.forall Option.isSome scanning