let spots = seq { 1..10000000 }
let best = 3
let top = 99
let right = 111
(* Real: 00:00:02.924 *)
[ yield! [right;top]
for spot in spots do
if spot <> best then
let rect = 1
yield rect ]
(* 00:00:05.408 *)
spots
|> Seq.filter (fun spot -> spot <> best)
|> Seq.map (fun spot -> let rect = 1 in rect)
|> Seq.append [right; top]
|> List.ofSeq
(*Real: 00:00:03.402*)
seq {
yield! [right;top]
for spot in spots do
if spot <> best then
let rect = 1
yield rect }
|> List.ofSeq