0.0.16 • Published 1 year ago

iterable-linq-utility v0.0.16

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

npm.io

A .NET Linq to Objects porting with javacript naming conventions (e.g.: Select as been ranamed to map) and some new features (e.g.: memoize and materialize).

Official documentation available here

Main Idea

As the previous description says, the idea is to create a kind-of-porting of .NET Linq to Objects with a naming convetions that is more javascript and functional programming oriented and not sql oriented ^1.
In other words the idea is:

  • to keep the LINQ Deferred Exceution and apply it to the JavaScript Iterator Protocol with a more standard way of naming well known high order functions like map, flatMap, reduce used by javascript and some functional programming libraries (e.g.: Ramdajs, SanctuaryJs, FantasyLand and lodash).
  • to keep the Linq repeatable execution which allows to traverse the same chain multiple times without having to recreate it from scratch every time, in this way is possible to store the chain in a variable and then trigger it to get the max and min without recreating it:

    const myChain = IterableLinq.from([1,2,3,4]).filter().map(); // chain creation
    const max = myChain.max();
    const min = myChain.min(); // using the same chain twice

Since in javascript you cannot rely on extensions methods as in c# there is the need to create a wrapper over Iterable to achive the same Deferred Exceution concept.

IterableLinq
    .fromRange(start, end)
    .filter(myFilterFunction)
    .map(myMapFunction)
    .collectToArray()

as Operations Chain or O~s~C.
The O~s~C supports two types of operations:

0.0.16

1 year ago

0.0.15

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago