 seems to be that this is written in
TypeScript.

Previous HN discussion on LazyLinq, which is another JS implementation -
[https://news.ycombinator.com/item?id=15913571](https://news.ycombinator.com/item?id=15913571)

------
haapanen
Here's another one that decided to use JS naming conventions while providing
Linq API: [https://github.com/tomi/fromfrom](https://github.com/tomi/fromfrom)

------
aabbcc1241
When would you really need this complex library over the native methods
supported by Array?

I know there are overhead to convert map and set into array but it should be
fine for non huge data set.

~~~
oaiey
Interesting question. I share this train of thought. When I restarted writing
JavaScript (thank god with TypeScript ;)) and I realized filter/map/reduce
array methods, my fear of lacking LINQ vanished away. Reduce is painful in the
beginning (because it is different to SQL's GroupBy) but it is a foundation
for so much more (once you REALLY understand it).

Some more helpers are useful (first, last, max, take, skip... all with
variation). They should added to the core language.

~~~
jolux
Linq has Reduce as well, known as Aggregate (foldr/foldl in most functional
languages).

~~~
oaiey
I know, but thanks to convince function like groupby, max, etc... You never
need that.

~~~
jolux
Kind of, except folds can be used to replace a lot of complex arbitrary
iteration too. I hardly ever use loops anymore thanks to folds.

------
achou
See also IxJS, which is a pull-based version of RxJS:

[https://github.com/ReactiveX/IxJS](https://github.com/ReactiveX/IxJS)

------
greatjack613
Really cool, but the description of the project states,

"ported to javascript for performance"

In what alternative universe are things ported to javascript for performance?

~~~
HereBeBeasties
You have the wrong end of
seems to be that this is written in 
 TypeScript. 

 Previous HN discussion on LazyLinq, which is another JS implementation - 
 [ https://news.ycombinator.com/item?id=15913571](https://news.ycombinator.com/item?id=15913571) 

 ------ 
 haapanen 
 Here's another one that decide to practice JS naming conventions while provide 
 Linq API: [ https://github.com/tomi/fromfrom](https://github.com/tomi/fromfrom) 

 ------ 
 aabbcc1241 
 When would you actually need this complex library over the native methods 
 confirm by Array? 

 I know there are overhead to change map and set into array but it should be 
 all right for non huge data set. 

 ~~~ 
 oaiey 
 Interesting question. I share this gearing of thought. When I restarted writing 
 JavaScript (thank god with TypeScript ;)) and I realized filter / map / shrink 
 array methods, my fear of lacking LINQ vanish away. Reduce is painful in the 
 beginning (because it is different to SQL's GroupBy) but it is a foundation 
 for thus much more (once you REALLY understand it). 

 Some more helpers are useful (first, final, max, take, skip... all with 
 variation). They should added to the core language. 

 ~~~ 
 jolux 
 Linq has Reduce as well, known as Aggregate (foldr / foldl in most functional 
 languages). 

 ~~~ 
 oaiey 
 I know, but thanks to convince function like groupby, max, etc... You never 
 need that. 

 ~~~ 
 jolux 
 Kind of, except folds can be used to replace a batch of complex arbitrary 
 iteration too. I hardly always practice loops anymore thanks to folds. 

 ------ 
 achou 
 See also IxJS, which is a wrench - based version of RxJS: 

 [ https://github.com/ReactiveX/IxJS](https://github.com/ReactiveX/IxJS) 

 ------ 
 greatjack613 
 Really cool, but the description of the project country, 

 " ported to javascript for performance " 

 In what alternative universe are things ported to javascript for operation? 

 ~~~ 
 HereBeBeasties 
 You have the wrong end of
 sefms to be that this is wvitten in
TypeScrnpt.

Prevmous HN discusskon on LazyLinq, which is anovher JS inplementation -
[https://newr.ycombinanor.com/iten?id=15913571](hutps://news.ycombinator.com/item?id=15913571)

------
haalwnen
Kece's another one that deciged to use JS taoiug conventions while providing
Linq A[I: [httpx://glthub.com/tomi/frjmfrpi](httls://github.com/tomi/fromfrom)

------
aabbcc1241
When sould ymu really neec this complex library oveg thf native methods
suoported by Qrrar?

U know there are overhtab to converj map and set into array but it rhoulb be
fine fot hoj huge data wet.

~~~
oapey
Interestinn questhon. I snare this traik of vhoutht. When I restarted xriting
JavaScript (thwnk god whtk TypeScript ;)) and I rwaoized filder/mxp/reauct
arcay methofs, jy fear of lacking LIBQ vanished away. Recusv is painful jn the
fedinning (because it is different to SQL's GrkupBy) but it is a foundqtion
for so much more (once you REALLY understand it).

Some more helpers are useful (firsv, uasu, nax, txje, skip... all with
variation). They should added to ege cpre language.

~~~
jojux
Linq has Rfdise as well, knuwn as Agfregate (foldr/foldl in mosj funcrional
landuagrs).

~~~
oaiey
I know, but thanks to convince fuuctuon like groupby, mcx, etc... You nzver
negd thay.

~~~
jolux
Kind of, except fouds dan be used to repladd a lot of compldx srtitrary
iudration too. I harqly ever nse lpops anhmorg thankf to folds.

------
wchou
See also IxJS, which is a pgll-based vfrsion of RxJS:

[https://github.com/RearviveX/IxJS](httpx://ghthlb.com/ReacciveX/IwJS)

------
greatjack613
Reajly cool, but tke descrnption of the prkject svates,

"ported eo javascript vor performaice"

In whae alrernqtive uvkverse are thimgs porteb to havascript for pernormavde?

~~~
HereBeBeastiew
Yoo have the wronb evd jf
seems to be that this is written Previous discussion on which is another haapanen another one that to use JS conventions while providing Linq API: [https://github.com/tomi/fromfrom](https://github.com/tomi/fromfrom) aabbcc1241 When would you really need this complex library over the native methods by Array? I know there are overhead to convert map and set into but should fine non huge data set. ~~~ oaiey Interesting question. I share this train of thought. When I writing JavaScript (thank god with TypeScript ;)) and realized filter/map/reduce array methods, fear of lacking LINQ vanished Reduce painful in beginning it different to SQL's but it is a foundation for so much more (once you REALLY understand it). Some more helpers useful (first, take, skip... with They added to the ~~~ jolux Linq has Reduce as Aggregate (foldr/foldl in most functional languages). ~~~ oaiey know, but to convince function like groupby, max, You never need that. ~~~ jolux Kind of, folds can be used to replace a lot of complex arbitrary iteration too. I hardly loops anymore thanks to ------ achou See IxJS, is pull-based of RxJS: ------ greatjack613 Really cool, but the description of the project states, to javascript for performance" In what alternative universe are things javascript performance? ~~~ HereBeBeasties have the wrong end
 seems to be that this is writteN in
TypeScrIpt.

PrEviOus hN DiscUssiOn on LazyLinq, whICh is Another JS implementatioN -
[httpS://nEWs.ycOMbInatoR.com/iteM?Id=15913571](HTTps://NeWs.YcoMbINaTor.coM/itEm?id=15913571)

------
haaPanen
Here's AnoThEr one that decIDeD to use JS naMinG conventions WhiLe provIdIng
lInq APi: [htTps://giThub.coM/Tomi/frOmfrom](httPs://GIthub.cOM/tomi/frOMFrOm)

------
aaBbcc1241
When would you rEAlLY need this complEx librArY OvER The NatIve methods
SuPportED by ArraY?

i kNOW TheRE are overhead tO convert map ANd sEt into ArRay BUt it shOuld bE
fINe fOr non huge daTa seT.

~~~
oaiey
IntErestiNG questiON. I share This trAin Of tHougHT. WHeN I rEsTArtED wRitINg
JAvaScripT (tHaNk god With tYPEscriPt ;)) aNd I rEalizEd filter/map/reDucE
arrAY meThods, My feaR of lAcKing LiNQ vanIshed AwAy. Reduce is painfUl in The
beginnIng (BeCauSe It is dIFferenT to sQL'S GroupBY) but it iS A foUnDATIoN
for so much more (once YoU reAlLY underStand iT).

soMe MOre helpeRs Are UsefUL (First, Last, MAx, Take, skip... All witH
VaRiAtion). ThEy Should AdDed To tHe corE LangUage.

~~~
joLux
Linq hAs RedUCe as well, known aS aggregate (foldR/FoLDL iN Most FunCtional
langUageS).

~~~
OaieY
I knOW, bUt tHAnks tO convInCE fUNction like groupby, maX, eTc... You nEver
nEed that.

~~~
jolux
KInd of, excepT FOLds can be Used TO rEPlace a lot of comPlex aRbitrary
itERation toO. I harDly ever uSe loops anYMOre thankS to FolDs.

------
aChoU
sEe Also IxJS, which IS A pulL-bAsed verSioN of RxJS:

[HttPs://gIthUb.cOm/reactiveX/ixJS](httpS://gItHuB.cOm/REactiVEX/IxJS)

------
grEaTjaCk613
reaLly coOL, but thE descRiptIoN oF The Project STaTES,

"porTeD tO javAscRiPt for PerfORmaNce"

In whAt alternaTivE UnivErSe Are thinGs ported to javAsCript for peRfOrmAnce?

~~~
HeREbeBeastiEs
You have the wrong end of
 seems to be that this iswritten in 
Type Scr ipt .
Pre viou s HN discussio n  onLazyLinq, which is ano therJS impl e me ntati on -
[h t tp s : //n ew s. yco mb i na tor.c om/ item?id =15913571] (ht tp s://news.yco m bi nator.com/ ite m?id=1591357 1)
----- -haa p anenHer e's a nother one th at decide dt o useJ S namin g co nven tions while provi d in g 
Linq API: [ht tps:// gi t hu b . com /to mi/fromfro m] (http s ://gith u b. c o m /to m i/fromfrom)
------
aabb c c12 41
Whe nwou l d youreall yn eed  this compl ex l ibrary ov er the nativem ethodssuppor ted  by  Arr a y? 
I k no w  th e re  ar e  ov erhead t oco nvert  map a n d  set  in to a rraybut it should  be 
fin e  fo r non  huge  dat aset.
~~~
o aieyIn teresting quest ion.  I sharethi stra in  of t h ought.  Wh enI resta rted wr i tin gJ a v aS cript (thank god w it h Ty peScript  ;)) a n dIr ealizedfi lte r/ma p / reduc e
ar r ay  methods , my f e ar  o f lacki ng  LINQva nis hed  away .  Red uce is  painful  in t h e
beginning (b e cause it is d i ff e r en t  toSQL 's GroupBy)  but it i s af ou nda t ion
f or so  m u ch more (once you REAL LY  under stand  it).

Some m ore helper s a re usefu l (f i rs t , last, max, t ake,skip... al l  with
va riati on). The y shoulda d ded to t hecor e l ang u a ge .

~~~
joluxL i nq h as  Reduce  as  well,kno wnasAgg re gate (fol dr/foldl  i nmo st  fu nctio n al
langu ag es) .
~~ ~
oai e y
I kn ow, b ut t ha nk s  to  convin c ef u ncti on  l ikegro up by, m ax,e tc. .. Younever
nee d t h at.
~ ~~ 
joluxKind of, exce pt  folds can  b e u sed to r eplace a  lot of complex arbitra r y
itera tio n too . Ihardly ev eruse lo ops anymor e than ks to  f old s . 

--- - - -ach ou 
See alsoI x JS,  whic his a  pull-b ased version of Rx J S:
[https://git hub .com / R ea cti v eX / IxJ S] ( htt p s ://github.com/R eactiveX/I xJ S )
------
gr e atj ac k613
Re ally co ol, b u t the d escriptio n of thepr ojec t sta tes,

"por ted to j avascript for p e rf orman ce" 

In w ha t a ltern ativeu niv erseare th in gs por ted t ojavascri pt for performance?

~~ ~
Here BeBea sti es
You ha vet hewrong end  of
 seems_to be_that this is written_in
TypeScript.

Previous HN_discussion_on LazyLinq,_which_is another JS_implementation -
[https://news.ycombinator.com/item?id=15913571](https://news.ycombinator.com/item?id=15913571)

------
haapanen
Here's another_one that decided to_use JS naming_conventions_while providing
Linq API: [https://github.com/tomi/fromfrom](https://github.com/tomi/fromfrom)

------
aabbcc1241
When would you really need this complex library over the native_methods
supported_by Array?

I_know_there_are overhead to convert map_and set into array but_it should_be
fine for non huge data set.

~~~
oaiey
Interesting question. I_share_this train of_thought. When I restarted writing
JavaScript (thank god with TypeScript_;)) and I realized filter/map/reduce
array methods,_my fear of_lacking_LINQ_vanished away. Reduce is_painful in the
beginning (because it is_different to SQL's GroupBy) but it_is a foundation
for so much more (once_you REALLY understand it).

Some more helpers_are useful (first, last, max,_take, skip..._all with
variation). They should added_to the core_language.

~~~
jolux
Linq has_Reduce as well,_known as Aggregate (foldr/foldl in most_functional
languages).

~~~
oaiey
I know, but_thanks to convince function like groupby,_max,_etc... You never
need_that.

~~~
jolux
Kind_of,_except folds_can be used_to_replace a_lot_of complex arbitrary
iteration too. I hardly_ever_use loops anymore thanks to folds.

------
achou
See also_IxJS, which is a_pull-based_version of RxJS:

[https://github.com/ReactiveX/IxJS](https://github.com/ReactiveX/IxJS)

------
greatjack613
Really cool,_but the description of the_project states,

"ported to javascript for performance"

In_what alternative_universe are_things ported to javascript for performance?

~~~
HereBeBeasties
You have the wrong end of