We know that F# collections have support for lazy evaluation, not just eager evaluation. Almost all of F# collections are lazy, except the operations that require modifications on the order of the elements. The collections in F# that do not have a lazy feature are F# Array
and Set
, as the semantics are similar to the .NET BCL array.
Collection modules on F# are not all lazily evaluated. The same behavior is applied on these modules: Array
, List
, and Sequence
. The F# developer team is working hard to end the feature disparity by making relevant functions to be available for all modules.
For a more complete list of F#'s progress on narrowing feature disparity (focusing on what's new in F# releases) visit:
https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/whats-new-in-visual-fsharp
For example, map
and filter
do not require modification of the order of the elements; sort (orderby
in LINQ) and groupby
require modifications.
The real reasons why we...