Great work on the SIMDArray extensions, always nice to get speed while maintaining a functional style.<p>BTW, I don't think you need a third party library like Nessos to get that streaming behavior (iterating over the items in a single pass). Seq will do the job just fine. For example this code:<p><pre><code> let arr = [|1;2;3|]
let sumSquares =
arr
|> Seq.map (fun x -> printfn "%i map" x; x*x)
|> Seq.fold(fun sum x -> printfn "%i fold" x; sum + x)
</code></pre>
will produce this output in F# Interactive:<p><pre><code> >
1 map
1 fold
2 map
4 fold
3 map
9 fold
val arr : int [] = [|1; 2; 3|]
val sumSquares : int = 14</code></pre>