This commit is contained in:
Smaug123
2023-01-16 13:48:06 +00:00
parent 9697bb5311
commit 3973c5eaff
6 changed files with 171 additions and 121 deletions

View File

@@ -5,16 +5,24 @@ module Seq =
let minMax (s : int seq) : struct (int * int) voption =
use e = s.GetEnumerator ()
if not (e.MoveNext ()) then ValueNone else
let mutable min = e.Current
let mutable max = e.Current
while e.MoveNext () do
if e.Current < min then min <- e.Current
if e.Current > max then max <- e.Current
ValueSome (struct (min, max))
if not (e.MoveNext ()) then
ValueNone
else
let mutable min = e.Current
let mutable max = e.Current
while e.MoveNext () do
if e.Current < min then
min <- e.Current
if e.Current > max then
max <- e.Current
ValueSome (struct (min, max))
let rangeOrZero (s : int seq) : int =
match minMax s with
| ValueNone -> 0
| ValueSome (min, max) -> max - min
| ValueSome (min, max) -> max - min