Rendered
This commit is contained in:
323
terminal/fpjs
Normal file
323
terminal/fpjs
Normal file
@@ -0,0 +1,323 @@
|
||||
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome FP JS [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://github.com/sindresorhus/awesome)[0m
|
||||
|
||||
[38;5;12mThis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcurated[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mawesome[39m[38;5;12m [39m[38;5;14m[1mfunctional[0m[38;5;14m[1m [0m[38;5;14m[1mprogramming[0m[38;5;12m [39m[38;5;12m(https://en.wikipedia.org/wiki/Functional_programming)[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mlearning[39m[38;5;12m [39m[38;5;12mresources[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mJavaScript.[39m[38;5;12m [39m[38;5;12mAs[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmulti-paradigm[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguage,[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m
|
||||
[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mwritten[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mstyles.[39m[38;5;12m [39m[38;5;12mWith[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mresources[39m[38;5;12m [39m[38;5;12mwe[39m[38;5;12m [39m[38;5;12mwant[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhelp[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmake[39m[38;5;12m [39m[38;5;12mbetter[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mJavaScript’s[39m[38;5;12m [39m[38;5;12msupport[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mwriting[39m[38;5;12m [39m[38;5;12mprograms[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12m_functional_[39m[38;5;12m [39m[38;5;12mway.[39m
|
||||
|
||||
[38;5;12mFunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;14m[1mstyle[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mprogramming[0m[38;5;12m [39m[38;5;12m(https://wiki.haskell.org/Functional_programming)[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mmodels[39m[38;5;12m [39m[38;5;12mcomputations[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mevaluation[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mexpressions.[39m[38;5;12m [39m[38;5;12mContrast[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mimperative[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mwhere[39m[38;5;12m [39m
|
||||
[38;5;12mprograms[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mcomposed[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mstatements[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mchange[39m[38;5;12m [39m[38;5;12mglobal[39m[38;5;12m [39m[38;5;12mstate[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12mexecuted.[39m[38;5;12m [39m[38;5;12mFunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mtypically[39m[38;5;12m [39m[38;5;12mavoids[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mmutable[39m[38;5;12m [39m[38;5;12mstate[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mfavors[39m[38;5;12m [39m[38;5;12m_side-effect[39m[38;5;12m [39m[38;5;12mfree_[39m[38;5;12m [39m[38;5;12mfunctions[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12m_immutable_[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12minstead.[39m[38;5;12m [39m[38;5;12mThis[39m
|
||||
[38;5;12mencourages[39m[38;5;12m [39m[38;5;12mwriting[39m[38;5;12m [39m[38;5;12mcomposable[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdeclarative[39m[38;5;12m [39m[38;5;12mprograms[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12measy[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mreason[39m[38;5;12m [39m[38;5;12mabout.[39m
|
||||
|
||||
[38;2;255;187;0m[4mTable of Contents[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLibraries[0m[38;5;12m (#libraries)[39m
|
||||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mData Structures[0m[38;5;12m (#data-structures)[39m
|
||||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAlgebraic Data Types[0m[38;5;12m (#algebraic-data-types)[39m
|
||||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLenses[0m[38;5;12m (#lenses)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional Languages that Compile to JavaScript[0m[38;5;12m (#functional-languages-that-compile-to-javascript)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProgramming Tools[0m[38;5;12m (#programming-tools)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mResources[0m[38;5;12m (#resources)[39m
|
||||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBooks[0m[38;5;12m (#books)[39m
|
||||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mArticles[0m[38;5;12m (#articles)[39m
|
||||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mVideos[0m[38;5;12m (#videos)[39m
|
||||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mExamples and Exercises[0m[38;5;12m (#examples-and-exercises)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCommunity[0m[38;5;12m (#community)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mContribution[0m[38;5;12m (#contribution)[39m
|
||||
|
||||
[38;2;255;187;0m[4mTags[0m
|
||||
[38;5;12mThese[39m[38;5;12m [39m[38;5;12mmay[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mappended[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mentries.[39m[38;5;12m [39m[38;5;12mEach[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mpreceded[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12m"+"[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12m"-"[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mindicate[39m[38;5;12m [39m[38;5;12mpresence[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mabsence[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtag's[39m[38;5;12m [39m[38;5;12mmeaning.[39m[38;5;12m [39m[38;5;12m"-"[39m[38;5;12m [39m[38;5;12mtags[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mincluded[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mlikely[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhelp[39m[38;5;12m [39m[38;5;12msomeone[39m[38;5;12m [39m[38;5;12mfilter[39m[38;5;12m [39m
|
||||
[38;5;12mlibraries[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mneeds.[39m[38;5;12m [39m[38;5;12mFor[39m[38;5;12m [39m[38;5;12minstance,[39m[38;5;12m [39m[48;5;235m[38;5;249m-TS[49m[39m[38;5;12m [39m[38;5;12mtags[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mprobably[39m[38;5;12m [39m[38;5;12museful[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mTypescript[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12mscreening[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mtypes,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[48;5;235m[38;5;249m-CT[49m[39m[38;5;12m [39m[38;5;12mtags[39m[38;5;12m [39m[38;5;12mwould[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mless[39m[38;5;12m [39m[38;5;12mlikely[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mhelpful[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12manyone.[39m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;12m__CT__. Category Theory. This library appears to be inspired by Haskell, Scala, or another functional language's library with a grounding in Category Theory.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;12m__TS__. Typescript. This library has typescript types.[39m
|
||||
|
||||
[38;2;255;187;0m[4mLibraries[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRamda[0m[38;5;12m [39m[38;5;12m(https://github.com/ramda/ramda)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mpractical[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mdesigned[39m[38;5;12m [39m[38;5;12mspecifically[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mstyle.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mstyle[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mmakes[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12measy[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m
|
||||
[38;5;12mpipelines[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mnever[39m[38;5;12m [39m[38;5;12mmutates[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mdata.[39m[38;5;12m [39m[38;5;12m+TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRamda Adjunct[0m[38;5;12m (https://github.com/char0n/ramda-adjunct) is a community-maintained extension of Ramda.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRamda-extension[0m[38;5;12m (https://github.com/tommmyy/ramda-extension) is set of utility point-free functions composed only from Ramda functions.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRambda[0m[38;5;12m (https://github.com/selfrefactor/rambda) - A faster alternative to Ramda in under 10kB.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRambdax[0m[38;5;12m (https://github.com/selfrefactor/rambdax) - Extended version of Rambda[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFolktale[0m[38;5;12m (http://folktale.origamitower.com/) – A standard library for functional programming in JavaScript. Typescript support expected mid-2020. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mlodash/fp[0m[38;5;12m [39m[38;5;12m(https://github.com/lodash/lodash/wiki/FP-Guide)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12minstance[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;14m[1mLodash[0m[38;5;12m [39m[38;5;12m(https://github.com/lodash/lodash)[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mmethods[39m[38;5;12m [39m[38;5;12mwrapped[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mproduce[39m[38;5;12m [39m[38;5;12mimmutable,[39m[38;5;12m [39m[38;5;12mauto-curried,[39m[38;5;12m [39m[38;5;12miteratee-first,[39m[38;5;12m [39m[38;5;12mdata-last[39m[38;5;12m [39m
|
||||
[38;5;12mmethods.[39m[38;5;12m [39m[38;5;12m+TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfunctional.js[0m[38;5;12m (https://github.com/functionaljs/functional-js) – A lightweight functional JavaScript library that facilitates currying and point-free / tacit programming.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1m101[0m[38;5;12m (https://github.com/tjmehta/101) – A modern and modular JavaScript utility library made to work well with vanilla JavaScript methods. -TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfnuc[0m[38;5;12m (https://github.com/algesten/fnuc) – A functional library for CoffeeScript (and JavaScript) to facilitate functional composition and higher order functions.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mbarely-functional[0m[38;5;12m (https://github.com/cullophid/barely-functional) – A tiny (2.7kb) functional programming library using native ES5/6 operations. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mbluebird-promisell[0m[38;5;12m (https://github.com/zhangchiqing/bluebird-promisell) - A practical functional programming library for promises.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mprelude.ls[0m[38;5;12m (http://gkz.github.io/prelude-ls/) – A functionally oriented utility library somewhat based off of Haskell's Prelude module. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mpreludejs[0m[38;5;12m (https://github.com/alanrsoares/prelude-js) - Hardcore Functional Programming for JavaScript. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1m1-liners[0m[38;5;12m (https://github.com/1-liners/1-liners) – Functional tools that couldn’t be simpler. A dead simple functional utility belt, hand-crafted with love and attention. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfn-curry[0m[38;5;12m (https://github.com/thunklife/fn-curry) – A simple function to curry a function.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcurry[0m[38;5;12m (https://github.com/thisables/curry) – Curry your functions using function bind syntax.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcompose-function[0m[38;5;12m (https://github.com/stoeffel/compose-function) – Compose a new function from smaller functions.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfunctionize[0m[38;5;12m (https://github.com/paldepind/functionize) – A collection of functions which aid in making non-functional libraries functional.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mlambdajs[0m[38;5;12m (https://github.com/loop-recur/lambdajs) – The full ECMAScript API done a functional way.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfp-dom[0m[38;5;12m (https://github.com/fp-dom/) – Making the DOM functional.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mreact-on-lambda[0m[38;5;12m (https://github.com/sultan99/react-on-lambda) - Replace JSX in React with functions (currying, compositions and etc). [39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mtrifl[0m[38;5;12m (https://github.com/algesten/trifl) – A functional user interface library with unidirectional dataflow and a virtual dom.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfuncy[0m[38;5;12m (https://github.com/bramstein/funcy) – An experiment in adding functional pattern matching to JavaScript. _Experimental_ :triangular_flag_on_post:[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mdate-fp[0m
|
||||
[38;5;12m (https://github.com/cullophid/date-fp) – A functional utility library for working with JavaScript dates. All functions in date-fp are pure, autocurried and will not mutate the date objects they are applied to.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mjs-joda[0m[38;5;12m (https://github.com/js-joda/js-joda) – An immutable date and time library that provides a simple, domain-driven and clean API based on the ISO8601 calendar.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1m\_part\_[0m[38;5;12m (https://github.com/AutoSponge/_part_) – A micro library that encourages functional programming by making native methods available as partially applied functions.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mclaire[0m[38;5;12m (https://github.com/robotlolita/claire) – A property-based testing library for clearly specifying code invariants and behaviour.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFPO.js[0m[38;5;12m (https://github.com/getify/fpo) – FP library for JavaScript by Kyle Simpson (aka getify). Supports named-argument style methods.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJavascript Parser Combinator[0m[38;5;12m (https://github.com/d-plaindoux/parsec) – Javascript parser combinator implementation inspired by the Haskell's Parsec[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfun-task[0m[38;5;12m [39m[38;5;12m(https://github.com/rpominov/fun-task)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mabstraction[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmanaging[39m[38;5;12m [39m[38;5;12masynchronous[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJS.[39m[38;5;12m [39m[38;5;12mTasks[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12msimilar[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mPromises[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mkey[39m[38;5;12m [39m[38;5;12mdifference[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mTasks[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mrepresent[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcomputation[39m[38;5;12m [39m[38;5;12mwhile[39m[38;5;12m [39m
|
||||
[38;5;12mPromises[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mrepresent[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mresults[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcomputation.[39m[38;5;12m [39m[38;5;12mShips[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mFlow[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12mdefinitions.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mmost[0m[38;5;12m [39m[38;5;12m(https://github.com/cujojs/most)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mUltra-high[39m[38;5;12m [39m[38;5;12mperformance[39m[38;5;12m [39m[38;5;12mreactive[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhelp[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mcompose[39m[38;5;12m [39m[38;5;12masynchronous[39m[38;5;12m [39m[38;5;12moperations[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mstreams[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mvalues[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mevents[39m[38;5;12m [39m[38;5;12mwithout[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhazards[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mside[39m[38;5;12m [39m[38;5;12meffects[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12mmutable[39m[38;5;12m [39m[38;5;12mshared[39m[38;5;12m [39m[38;5;12mstate.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mzen-signals[0m[38;5;12m (https://github.com/joaomilho/zen-signals) – ☯ The simplest signal library possible[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfunfix[0m[38;5;12m (https://github.com/funfix/funfix) – Funfix is a library of type classes and data types for Functional Programming in JavaScript, TypeScript and Flow. +CT, +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mpico-lambda[0m[38;5;12m (https://github.com/trainyard/pico-lambda) - Arrays, Strings and things the functional way. A 640b functional library based on native methods. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mpareto-js[0m[38;5;12m (https://github.com/concretesolutions/pareto.js/) - An extremely small, intuitive and fast functional utility library for JavaScript -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfpEs[0m[38;5;12m (https://github.com/TeaEntityLab/fpEs/) - A small library provides simple usages of basic FP & pattern-matching/sumtype & MonadIO/Rx & Optional for Javascript. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCreed[0m[38;5;12m (http://blog.briancavalier.com/creed/) – Sophisticated and functionally-minded async with advanced features: coroutines, promises, ES2015 iterables, fantasy-land. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTGrid[0m[38;5;12m (https://github.com/samchon/tgrid) - Grid Computing Framework, Network & Thread extension of [39m[38;5;14m[1mTSTL[0m[38;5;12m (https://github.com/samchon/tstl), supporting RFC (Remote Function Call). +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFerrum[0m[38;5;12m (https://github.com/adobe/ferrum) – Iterator library with support for objects as iterables, lazy evaulation and[39m[48;5;235m[38;5;249mpipe()[49m[39m[38;5;12m; implements Traits (from Rust)/Type Classes (from Haskell) in JS. -TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfp-ts[0m[38;5;12m (https://gcanti.github.io/fp-ts/) - Typed functional programming in TypeScript. +CT, +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1miter-tools[0m[38;5;12m (https://github.com/iter-tools/iter-tools) - a rich toolset for working with iterables, both sync and async. +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mremeda[0m[38;5;12m (https://remedajs.com/) A function library roughly subsetting Ramda, but written in Typescript and thus more type-friendly. +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfutil-js[0m[38;5;12m (https://github.com/smartprocure/futil-js) - A collection of functional utilities that could conceivably be part of a library like lodash/fp, but for some reason or other are not.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mrubico[0m[38;5;12m (https://github.com/a-synchronous/rubico) - 🏞 [39m[38;5;14m[1ma[0m[38;5;12m synchronous functional syntax[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mrocket-pipes[0m[38;5;12m (https://github.com/darky/rocket-pipes) - Powerful pipes, that chain Promise and ADT like Maybe or Either from popular FP libraries. +TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1momg-curry[0m[38;5;12m (https://github.com/Debdut/omg-curry) - Comprehensive Curry Library with Operator Curry, Curry from functions, Decurry and Infifnite Curries.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mlfi[0m[38;5;12m (https://github.com/TomerAberbach/lfi) - A Lazy Functional Iteration Library Supporting Sync, Async, and Concurrent Iteration.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mts-multimethod[0m[38;5;12m (https://github.com/darky/ts-multimethod) - TypeScript multimethods inspired by Clojure multimethods. +TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mts-fp-di[0m[38;5;12m (https://github.com/darky/ts-fp-di) - Tiny TypeScript functional dependency injection, based on Node.js AsyncLocalStorage. +TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1meffect-ts[0m[38;5;12m (https://github.com/Effect-TS/core) – A Fully-fledged functional effect system for typescript with a rich standard library. +TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mqio[0m[38;5;12m (https://github.com/tusharmath/qio) – A type-safe, functional, performant, lawful, composable data structure that solves practical problems of effect-full code in node and browser. +TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDitox.js[0m[38;5;12m (https://github.com/mnasyrov/ditox) - Powerful dependency injection container for building modular apps. +TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRxEffects[0m[38;5;12m (https://github.com/mnasyrov/rx-effects) - Reactive state and effect management with RxJS. +TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfxts[0m[38;5;12m (https://github.com/marpple/FxTS) - Lazy evaluation and concurrency. +TS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mts-belt[0m[38;5;12m [39m[38;5;12m(https://mobily.github.io/ts-belt/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mFast,[39m[38;5;12m [39m[38;5;12mmodern,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpractical[39m[38;5;12m [39m[38;5;12mutility[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mFP[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mTypeScript.[39m[38;5;12m [39m[38;5;12m(Uses[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mdata-first[39m[38;5;12m [39m[38;5;12mapproach[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mremeda,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;14m[1mfaster[0m[38;5;12m [39m
|
||||
[38;5;12m(https://mobily.github.io/ts-belt/benchmarks/v3.7.0/macbook-air-2020)[39m[38;5;12m [39m[38;5;12mthan[39m[38;5;12m [39m[38;5;12mremeda,[39m[38;5;12m [39m[38;5;12mramda,[39m[38;5;12m [39m[38;5;12mrambda,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mlodash/fp.)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfp-multik[0m[38;5;12m (https://github.com/lulldev/fp-multik) - JS/TS lightweight value-multimethod util[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mtrue-myth[0m[38;5;12m [39m[38;5;12m(https://github.com/true-myth/true-myth)[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12msafe,[39m[38;5;12m [39m[38;5;12midiomatic[39m[38;5;12m [39m[38;5;12mnull[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12merror[39m[38;5;12m [39m[38;5;12mhandling[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mTypeScript,[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[48;5;235m[38;5;249mMaybe[49m[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[48;5;235m[38;5;249mResult[49m[39m[38;5;12m [39m[38;5;12mtypes,[39m[38;5;12m [39m[38;5;12msupporting[39m[38;5;12m [39m[38;5;12mboth[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mstyle[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mtraditional[39m[38;5;12m [39m
|
||||
[38;5;12mmethod-call[39m[38;5;12m [39m[38;5;12mstyle[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mts-pattern[0m
|
||||
[38;5;12m (https://github.com/gvergnaud/ts-pattern) - The exhaustive Pattern Matching library for TypeScript, with smart type inference. Pattern Matching is a code-branching technique coming from FP languages.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mhyogwa[0m[38;5;12m (https://github.com/ENvironmentSet/hyogwa) - Natural 🌿 effect system that fits TypeScript; Write codes as you write [39m[38;5;14m[1mplain typescript code[0m[38;5;12m.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mVerticalize[0m[38;5;12m (https://github.com/laurentpayot/verticalize) - Super lightweight function that looks and behaves like a pipe operator.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPureEval[0m[38;5;12m (https://github.com/PureEval/PureEval) - A powerful JavaScript functional programming toolset, including utility functions and abstract data structures.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcontext-fp[0m[38;5;12m (https://github.com/darky/context-fp) - Microscopic functional programming context aka dependency injection. +TS[39m
|
||||
|
||||
[38;2;255;187;0m[4mData Structures[0m
|
||||
|
||||
[38;5;12mWrite performant functional code by using the right data structures for the task.[39m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mIcepick[0m[38;5;12m (https://github.com/aearly/icepick) Utilities for treating frozen JavaScript objects as persistent immutable collections[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mImmutable.js[0m[38;5;12m (https://github.com/facebook/immutable-js) – Immutable persistent data collections.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mImmer[0m[38;5;12m (https://github.com/mweststrate/immer) – Immer is a tiny package for immutable state based on copy-on-write mechanism. +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMori[0m[38;5;12m (https://github.com/swannodette/mori) – ClojureScript’s persistent data structures and supporting API from the comfort of vanilla JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBaobab[0m[38;5;12m (https://github.com/Yomguithereal/baobab) – persistent and optionally immutable data tree with cursors.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mimmutable-sequence.js[0m[38;5;12m (https://github.com/qiao/immutable-sequence.js) – High performance implementation of Immutable Sequence in JavaScript, based on [39m[38;5;14m[1mFinger Trees[0m[38;5;12m (https://github.com/qiao/fingertree.js).[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTimm[0m[38;5;12m (http://guigrpa.github.io/timm/) – Immutability helpers with fast reads and acceptable writes.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLazy.js[0m[38;5;12m (https://github.com/dtao/lazy.js) – A utility library with a lazy engine under the hood that strives to do as little work as possible while being as flexible as possible.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDerivableJS[0m
|
||||
[38;5;12m (https://github.com/ds300/derivablejs) – Functional Reactive State for JavaScript and TypeScript. DerivableJS enables you to make elegant declarative statements about how your bits of state are related. +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mimlazy[0m[38;5;12m (https://github.com/benji6/imlazy) – Library for creating and manipulating lazy iterables using the ES2015 iteration protocols.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcollectable[0m[38;5;12m (https://github.com/frptools/collectable) – Super high-performance immutable data structures for modern JavaScript and TypeScript applications. +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mList[0m[38;5;12m [39m[38;5;12m(https://github.com/funkia/list)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mextremely[39m[38;5;12m [39m[38;5;12mfast[39m[38;5;12m [39m[38;5;12mimmutable[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcomprehensive[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mAPI.[39m[38;5;12m [39m[38;5;12mDesigned[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;14m[1mseamlessly[0m[38;5;14m[1m [0m[38;5;14m[1mintegrate[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1mRamda[0m[38;5;12m [39m
|
||||
[38;5;12m(https://github.com/funkia/list#seamless-ramda-integration).[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mprelude.ts[0m[38;5;12m [39m[38;5;12m(https://github.com/emmanueltouzery/prelude.ts)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mImmutable[39m[38;5;12m [39m[38;5;12mpersistent[39m[38;5;12m [39m[38;5;12mcollections,[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mconstructs[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mOption[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mEither,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcombinators.[39m[38;5;12m [39m[38;5;12mImplemented[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mTypescript[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12msupports[39m[38;5;12m [39m
|
||||
[38;5;12mjavascript[39m[38;5;12m [39m[38;5;12mtoo.[39m[38;5;12m [39m[38;5;12m+CT,[39m[38;5;12m [39m[38;5;12m+TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTSTL[0m[38;5;12m [39m[38;5;12m(https://github.com/samchon/tstl)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mC++[39m[38;5;12m [39m[38;5;12mSTL[39m[38;5;12m [39m[38;5;12m(Standard[39m[38;5;12m [39m[38;5;12mTemplate[39m[38;5;12m [39m[38;5;12mLibrary)[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mimplemented[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mTypeScript.[39m[38;5;12m [39m[38;5;12mSTL[39m[38;5;12m [39m[38;5;12mContainers,[39m[38;5;12m [39m[38;5;12miterators,[39m[38;5;12m [39m[38;5;12malgorithms[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mfunctors,[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mfollowing[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mrule,[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m
|
||||
[38;5;12mprovided.[39m[38;5;12m [39m[38;5;12m+TS.[39m
|
||||
|
||||
[38;2;255;187;0m[4mAlgebraic Data Types[0m
|
||||
|
||||
[38;5;12mUse the laws of math instead of always reinventing your own thing. Algebraic![39m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFantasy Land[0m[38;5;12m (https://github.com/fantasyland/fantasy-land) – Not a library, but a specification of the Monad laws for libraries to follow.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mStatic Land[0m[38;5;12m (https://github.com/rpominov/static-land) – Specification similar to Fantasy Land but based on static methods rather than instance methods.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mimmutable-ext[0m[38;5;12m (https://github.com/DrBoolean/immutable-ext) – FantasyLand extensions for [39m[38;5;14m[1mImmutable.js[0m[38;5;12m (https://github.com/facebook/immutable-js).[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mdaggy[0m[38;5;12m (https://github.com/puffnfresh/daggy) – Library for creating tagged constructors.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSanctuary[0m[38;5;12m (https://github.com/plaid/sanctuary) – Sanctuary makes it possible to write safe code without null checks. +CT, +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mmonet.js[0m[38;5;12m (http://cwmyers.github.io/monet.js/) – A library that assists functional programming by providing a rich set of Monads and other useful functions. +CT, +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1munion-type[0m[38;5;12m (https://github.com/paldepind/union-type) – A small JavaScript library for defining and using union types.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfreeky[0m[38;5;12m (https://github.com/DrBoolean/freeky) – A collection of Free monads.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFluture[0m[38;5;12m (https://github.com/Avaq/Fluture) – A Future library with included control utilities, high performance and great error messages.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfantasy-combinators[0m[38;5;12m (https://github.com/fantasyland/fantasy-combinators) – Common combinators.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfantasy-birds[0m[38;5;12m (https://github.com/fantasyland/fantasy-birds) – Port of the Haskell package Data.Aviary.Birds. Everything for your combinatory needs.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcrocks[0m[38;5;12m [39m[38;5;12m(https://github.com/evilsoft/crocks)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mcollection[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mpopular[39m[38;5;12m [39m[38;5;12mAlgebraic[39m[38;5;12m [39m[38;5;12mData[39m[38;5;12m [39m[38;5;12mTypes[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mmain[39m[38;5;12m [39m[38;5;12mgoal[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcurate[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcommon[39m[38;5;12m [39m[38;5;12minterface[39m[38;5;12m [39m[38;5;12mbetween[39m[38;5;12m [39m[38;5;12meach[39m[38;5;12m [39m[38;5;12mtype,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhelper[39m[38;5;12m [39m
|
||||
[38;5;12mfunctions[39m[38;5;12m [39m[38;5;12mneeded[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhit[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mground[39m[38;5;12m [39m[38;5;12mrunning.[39m[38;5;12m [39m[38;5;12m-TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mkudo-js[0m[38;5;12m (https://github.com/blitzritz/kudojs) - A small utility library with a set of Algebraic Data Types and Helper functions to help you write code in a functional programming style in Javascript[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mpurify[0m[38;5;12m (https://github.com/gigobyte/purify) - Functional programming library for TypeScript focusing on ADTs. +CT, +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMojiScript[0m[38;5;12m (https://github.com/joelnet/MojiScript)- an async-first, opinionated, and functional language designed to have 100% compatibility with JavaScript engines[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPratica[0m[38;5;12m (https://github.com/rametta/pratica) - Small, simple, easy FP data types for pragmatic and productive developers who need to ship reliable code fast. +CT, +TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTifi[0m[38;5;12m [39m[38;5;12m(https://github.com/mobily/tifi)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mTifi[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mTypeScript.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12msolves[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mproblem[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mexistence[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mboth[39m[38;5;12m [39m[48;5;235m[38;5;249mundefined[49m[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[48;5;235m[38;5;249mnull[49m[39m[38;5;12m.[39m[38;5;12m [39m[38;5;12mTifi[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12minspired[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mOCaml/Reason[39m[38;5;12m [39m
|
||||
[38;5;12mutilities[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12moption[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mtype.[39m[38;5;12m [39m[38;5;12m+CT,[39m[38;5;12m [39m[38;5;12m+TS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1msweet-monads[0m[38;5;12m (https://github.com/JSMonk/sweet-monads) - A collection of popular monads (such as [39m[48;5;235m[38;5;249mEither[49m[39m[38;5;12m and [39m[48;5;235m[38;5;249mMaybe[49m[39m[38;5;12m) and the lazy iterator.[39m
|
||||
|
||||
[38;2;255;187;0m[4mLenses[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mlenses[0m[38;5;12m (https://github.com/DrBoolean/lenses) – Composable [39m[38;5;14m[1mkmett[0m[38;5;12m (https://github.com/ekmett/lens) style lenses.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1moptics[0m[38;5;12m (https://github.com/flunc/optics) – Profunctor optics (Lens, Prism, iso).[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mramda-lens[0m[38;5;12m (https://github.com/ramda/ramda-lens) – :ram: :mag_right: Lens library built on Ramda.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfantasy-lenses[0m[38;5;12m (https://github.com/fantasyland/fantasy-lenses) – Composable, immutable getters and setters. (Profunctor lenses WIP)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mnanoscope[0m[38;5;12m (https://github.com/5outh/nanoscope) – Lenses with dotty support.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mpartial.lenses[0m[38;5;12m (https://github.com/calmm-js/partial.lenses) – Partial lenses is a comprehensive, high-performance optics library for JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mshades[0m[38;5;12m (https://github.com/jamesmcnamara/shades) – A lodash-inspired lens-like library for Javascript.[39m
|
||||
|
||||
[38;2;255;187;0m[4mFunctional Languages that Compile to JavaScript[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mClojureScript[0m[38;5;12m (https://github.com/clojure/clojurescript) – Compiles [39m[38;5;14m[1mClojure[0m[38;5;12m (http://clojure.org/), a hosted Lisp with immutable persistent data structures, to JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mElm[0m[38;5;12m (http://elm-lang.org/) – A type-safe functional programming language for declaratively creating web browser-based graphical user interfaces. Implemented in Haskell.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFable[0m[38;5;12m (http://fable.io/) - Compiles [39m[38;5;14m[1mF#[0m[38;5;12m (http://fsharp.org) to readable JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPureScript[0m[38;5;12m (http://www.purescript.org/) – A small strongly typed programming language that compiles to JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mIdris[0m[38;5;12m (http://www.idris-lang.org/) – A general purpose pure functional programming language with dependent types.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGHCJS[0m[38;5;12m (https://github.com/ghcjs/ghcjs) – [39m[38;5;14m[1mHaskell[0m[38;5;12m (https://www.haskell.org/) to JavaScript compiler, based on GHC.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mElixirScript[0m[38;5;12m [39m[38;5;12m(https://github.com/bryanjos/elixirscript)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mCompiles[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12msubset[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;14m[1mElixir[0m[38;5;12m [39m[38;5;12m(http://elixir-lang.org/),[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mdynamic,[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mdesigned[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mbuilding[39m[38;5;12m [39m[38;5;12mscalable[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmaintainable[39m[38;5;12m [39m[38;5;12mapplications,[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||||
[38;5;12mJavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJs\_of\_ocaml[0m[38;5;12m (http://ocsigen.org/js_of_ocaml/) – Compiles [39m[38;5;14m[1mOCaml[0m[38;5;12m (http://ocaml.org/) bytecode to JavaScript, making it possible to run OCaml programs in the browser.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mReason[0m[38;5;12m (https://reasonml.github.io) – Reason is a new interface to OCaml, a highly expressive dialect of the ML language featuring type inference and static type checking.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mReScript[0m[38;5;12m [39m[38;5;12m(https://rescript-lang.org/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12m(previously[39m[38;5;12m [39m[38;5;12mknown[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;14m[1mBucklescript[0m[38;5;12m [39m[38;5;12m(https://rescript-lang.org/bucklescript-rebranding))[39m[38;5;12m [39m[38;5;12mReScript[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtype-safe[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcompiles[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhighest[39m[38;5;12m [39m[38;5;12mquality[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mclean,[39m[38;5;12m [39m
|
||||
[38;5;12mreadable[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mperformant[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mcode.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mScala.js[0m[38;5;12m (http://www.scala-js.org/) – Compiles [39m[38;5;14m[1mScala[0m[38;5;12m (http://www.scala-lang.org/) to JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLiveScript[0m[38;5;12m (http://gkz.github.io/LiveScript/) – LiveScript has a straightforward mapping to JavaScript and allows you to write expressive code devoid of repetitive boilerplate.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mQuack[0m[38;5;12m (https://github.com/quack/quack) - A multi-paradigm programming language with gradual and duck typing that targets PHP and JS.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mion[0m[38;5;12m (https://github.com/ion-lang/ion) - no BS JS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRamdaScript[0m[38;5;12m (https://github.com/yosbelms/ramdascript) - A Lisp that compiles to opinionated JavaScript on top of RamdaJS[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRacketScript[0m[38;5;12m (https://github.com/vishesh/racketscript) – RacketScript aims to leverage both JavaScript and Racket's ecosystem, and make interoperability between them clean and smooth.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mKoka[0m
|
||||
[38;5;12m (https://www.microsoft.com/en-us/research/project/koka/) – Koka is a function-oriented programming language that seperates pure values from side-effecting computations with a familiar JavaScript like syntax.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTypeScript[0m[38;5;12m (https://www.typescriptlang.org/) - TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGleam[0m[38;5;12m (https://gleam.run) - Gleam is a typed, functional language that compiles to Erlang and JavaScript.[39m
|
||||
|
||||
[38;2;255;187;0m[4mProgramming Tools[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1meslint-plugin-fp[0m[38;5;12m (https://github.com/jfmengels/eslint-plugin-fp) - ESLint rules for functional programming[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1m4.5[0m[38;5;12m [39m[38;5;12m(https://github.com/TylorS/4.5)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12massertions[39m[38;5;12m [39m[38;5;12mlibrary.[39m[38;5;12m [39m[38;5;12mIf[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mprefer[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mstyle[39m[38;5;12m [39m[38;5;12mAPIs[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpractices[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJavaScript,[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12maims[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msolve[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mfunctionally-oriented[39m[38;5;12m [39m[38;5;12massertions[39m[38;5;12m [39m
|
||||
[38;5;12mthat[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mlazy[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmonadic.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mhm-def[0m[38;5;12m (https://github.com/xodio/hm-def) – Runtime type checking for JS with Hindley Milner signatures.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mftor[0m[38;5;12m [39m[38;5;12m(https://github.com/kongware/ftor)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mpluggable[39m[38;5;12m [39m[38;5;12mruntime[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12mchecker[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mdebugging[39m[38;5;12m [39m[38;5;12mtool[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12msupports[39m[38;5;12m [39m[38;5;12mparametric[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mrow[39m[38;5;12m [39m[38;5;12mpolymorphism,[39m[38;5;12m [39m[38;5;12mimplicit[39m[38;5;12m [39m[38;5;12mrank-2[39m[38;5;12m [39m[38;5;12mtypes[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12malgebraic[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mtypes[39m[38;5;12m [39m[38;5;12mvia[39m[38;5;12m [39m[38;5;12mScott[39m[38;5;12m [39m
|
||||
[38;5;12mEncoding.[39m
|
||||
|
||||
[38;2;255;187;0m[4mResources[0m
|
||||
|
||||
[38;2;255;187;0m[4mBooks[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProfessor[0m[38;5;14m[1m [0m[38;5;14m[1mFrisby’s[0m[38;5;14m[1m [0m[38;5;14m[1mMostly[0m[38;5;14m[1m [0m[38;5;14m[1mAdequate[0m[38;5;14m[1m [0m[38;5;14m[1mGuide[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;12m [39m[38;5;12m(https://github.com/MostlyAdequate/mostly-adequate-guide)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mparadigm[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mgeneral[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mworld’s[39m[38;5;12m [39m[38;5;12mmost[39m[38;5;12m [39m
|
||||
[38;5;12mpopular[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguage:[39m[38;5;12m [39m[38;5;12mJavaScript.[39m[38;5;12m [39m[38;5;12mIt’s[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mpractical[39m[38;5;12m [39m[38;5;12mintroduction[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mbuilds[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mintuition[39m[38;5;12m [39m[38;5;12mthrough[39m[38;5;12m [39m[38;5;12mreal-world[39m[38;5;12m [39m[38;5;12mexamples.[39m[38;5;12m [39m[38;5;12mStrongly[39m[38;5;12m [39m[38;5;12mrecommended.[39m[38;5;12m [39m[38;5;12mBy[39m[38;5;12m [39m[38;5;14m[1mBrian[0m[38;5;14m[1m [0m[38;5;14m[1mLonsdorf[0m[38;5;12m [39m[38;5;12m(https://twitter.com/drboolean)[39m[38;5;12m [39m
|
||||
[38;5;12m(2016)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional-Light[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(https://github.com/getify/functional-light-js)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mexplores[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mcore[39m[38;5;12m [39m[38;5;12mprinciples[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12m(FP)[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mapplied[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mJavaScript.[39m[38;5;12m [39m[38;5;12mBut[39m[38;5;12m [39m[38;5;12mwhat[39m[38;5;12m [39m[38;5;12mmakes[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m
|
||||
[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mapproaches[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mprinciples[39m[38;5;12m [39m[38;5;12mwithout[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mheavy[39m[38;5;12m [39m[38;5;12mterminology.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJavaScript[0m[38;5;14m[1m [0m[38;5;14m[1mAllongé[0m[38;5;12m [39m[38;5;12m(https://leanpub.com/javascriptallongesix),[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12m“Six”[39m[38;5;12m [39m[38;5;12medition.[39m[38;5;12m [39m[38;5;12mStarts[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mlittle[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mpossible[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mfunctions[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mno[39m[38;5;12m [39m[38;5;12mless![39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mbuilds[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mtowards[39m[38;5;12m [39m[38;5;12mpowerful[39m[38;5;12m [39m[38;5;12mcombinators[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdecorators.[39m[38;5;12m [39m[38;5;12mA[39m
|
||||
[38;5;12mfoundational[39m[38;5;12m [39m[38;5;12mbook.[39m[38;5;12m [39m[38;5;12mBy[39m[38;5;12m [39m[38;5;14m[1mReginald[0m[38;5;14m[1m [0m[38;5;14m[1mBraithwaite[0m[38;5;12m [39m[38;5;12m(https://github.com/raganwald)[39m[38;5;12m [39m[38;5;12m(2016)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(https://www.manning.com/books/functional-programming-in-javascript)[39m[38;5;12m [39m[38;5;12mteaches[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mdevelopers[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mtechniques[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12mimprove[39m[38;5;12m [39m[38;5;12mextensibility,[39m[38;5;12m [39m[38;5;12mmodularity,[39m[38;5;12m [39m
|
||||
[38;5;12mreusability,[39m[38;5;12m [39m[38;5;12mtestability,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mperformance.[39m[38;5;12m [39m[38;5;12mThrough[39m[38;5;12m [39m[38;5;12mconcrete[39m[38;5;12m [39m[38;5;12mexamples[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mjargon-free[39m[38;5;12m [39m[38;5;12mexplanations,[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mteaches[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mapply[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mreal-life[39m[38;5;12m [39m[38;5;12mdevelopment[39m[38;5;12m [39m[38;5;12mtasks.[39m[38;5;12m [39m[38;5;12mBy[39m[38;5;12m [39m[38;5;12mLuis[39m[38;5;12m [39m[38;5;12mAtencio[39m[38;5;12m [39m[38;5;12m(2016)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEloquent JavaScript[0m[38;5;12m (http://eloquentjavascript.net/). A modern introduction to programming using JavaScript. By Marijn Haverbeke (2014)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(http://shop.oreilly.com/product/0636920028857.do)[39m[38;5;12m [39m[38;5;12mteaches[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mthat’s[39m[38;5;12m [39m[38;5;12mbeautiful,[39m[38;5;12m [39m[38;5;12msafe,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msimple[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12munderstand[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtest[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mJavaScript’s[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m
|
||||
[38;5;12msupport.[39m[38;5;12m [39m[38;5;12mBy[39m[38;5;12m [39m[38;5;14m[1mMichael[0m[38;5;14m[1m [0m[38;5;14m[1mFogus[0m[38;5;12m [39m[38;5;12m(https://github.com/fogus)[39m[38;5;12m [39m[38;5;12m(2013)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGrokking[0m[38;5;14m[1m [0m[38;5;14m[1mSimplicity[0m[38;5;12m [39m[38;5;12m(https://www.manning.com/books/grokking-simplicity)[39m[38;5;12m [39m[38;5;12mteaches[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mfirst[39m[38;5;12m [39m[38;5;12mprinciples.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12muses[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mexamples[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12muses[39m[38;5;12m [39m[38;5;12mreal-world[39m[38;5;12m [39m[38;5;12mscenarios.[39m[38;5;12m [39m[38;5;12mBy[39m[38;5;12m [39m[38;5;14m[1mEric[0m[38;5;14m[1m [0m
|
||||
[38;5;14m[1mNormand[0m[38;5;12m [39m[38;5;12m(https://github.com/ericnormand)[39m[38;5;12m [39m[38;5;12m(2019)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mscriptum[0m[38;5;12m (https://github.com/kongware/scriptum/blob/master/README.md) - a no-frills functional programming library and a online course based on it[39m
|
||||
|
||||
[38;2;255;187;0m[4mArticles[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFP[0m[38;5;14m[1m [0m[38;5;14m[1mConcepts[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(https://medium.com/@collardeau/intro-to-functional-programming-concepts-in-javascript-b0650773139c)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mintroduction[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mFunctional[39m[38;5;12m [39m[38;5;12mProgramming[39m[38;5;12m [39m[38;5;12mConcepts[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJavaScript.[39m[38;5;12m [39m[38;5;12mUses[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mRamda[39m
|
||||
[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mteach[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mconcepts[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcomposition,[39m[38;5;12m [39m[38;5;12mpointfree[39m[38;5;12m [39m[38;5;12mstyle,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mfunctors[39m[38;5;12m [39m[38;5;12mthrough[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msimplest[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mexamples.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mprogramming[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(http://stephen-young.me.uk/2013/01/20/functional-programming-with-javascript.html)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mAnother[39m[38;5;12m [39m[38;5;12mintroduction[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mFunctional[39m[38;5;12m [39m[38;5;12mProgramming[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfocus[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthree[39m[38;5;12m [39m
|
||||
[38;5;12mkey[39m[38;5;12m [39m[38;5;12mthemes:[39m[38;5;12m [39m[38;5;12mcomputation[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mapplication[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfunctions,[39m[38;5;12m [39m[38;5;12mstatelessness,[39m[38;5;12m [39m[38;5;12mavoiding[39m[38;5;12m [39m[38;5;12mside[39m[38;5;12m [39m[38;5;12meffects.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA[0m[38;5;14m[1m [0m[38;5;14m[1mgentle[0m[38;5;14m[1m [0m[38;5;14m[1mintroduction[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mfunctional[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-intro/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mfour-part[39m[38;5;12m [39m[38;5;12mseries[39m[38;5;12m [39m[38;5;12mintroduction[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m
|
||||
[38;5;12mthat[39m[38;5;12m [39m[38;5;12mgets[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mspeed[39m[38;5;12m [39m[38;5;12mwhat[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhype[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mabout.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctors from first principle - explained with JS[0m[38;5;12m (https://dev.to/snird/functors-from-first-principle-37lh) - Explaining functors concept using JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWhy Curry Helps[0m[38;5;12m (https://hughfdjackson.com/javascript/why-curry-helps/) – A short overview of how to write reusable and declarative code using currying.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFavoring Curry[0m[38;5;12m (http://fr.umio.us/favoring-curry/) - Practical applications of currying using Ramda.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional Mumbo Jumbo – ADTs[0m[38;5;12m (http://blog.jenkster.com/2016/06/functional-mumbo-jumbo-adts.html) – A beginner-friendly introduction to Algebraic Data Types.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJavaScript[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mType[0m[38;5;14m[1m [0m[38;5;14m[1mThinking[0m[38;5;12m [39m[38;5;12m(https://medium.com/@yelouafi/javascript-and-type-thinking-735edddc388d)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mLearn[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mreason[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12m_type[39m[38;5;12m [39m[38;5;12mthinking_.[39m[38;5;12m [39m[38;5;12mAlgebraic[39m[38;5;12m [39m[38;5;12mData[39m[38;5;12m [39m[38;5;12mTypes[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mintroduced[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m
|
||||
[38;5;12mconceptual[39m[38;5;12m [39m[38;5;12mbasis[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mreason[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mprogram[39m[38;5;12m [39m[38;5;12mentities.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLazy,[0m[38;5;14m[1m [0m[38;5;14m[1mcomposable,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mmodular[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(https://codewords.recurse.com/issues/four/lazy-composable-and-modular-javascript)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mUse[39m[38;5;12m [39m[38;5;12mfour[39m[38;5;12m [39m[38;5;12mnew[39m[38;5;12m [39m[38;5;12mfeatures[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mES6[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12miterables,[39m[38;5;12m [39m[38;5;12mgenerators,[39m[38;5;12m [39m[38;5;12mfat[39m[38;5;12m [39m[38;5;12marrows,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mfor-of[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m
|
||||
[38;5;12mconjunction[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mhigher-order[39m[38;5;12m [39m[38;5;12mfunctions,[39m[38;5;12m [39m[38;5;12mfunction[39m[38;5;12m [39m[38;5;12mcomposition,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mlazy[39m[38;5;12m [39m[38;5;12mevaluation,[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwrite[39m[38;5;12m [39m[38;5;12mcleaner[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mmodular[39m[38;5;12m [39m[38;5;12mJavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWhy[0m[38;5;14m[1m [0m[38;5;14m[1mRamda[0m[38;5;12m [39m[38;5;12m(http://fr.umio.us/why-ramda/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mTo[39m[38;5;12m [39m[38;5;12mthose[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming,[39m[38;5;12m [39m[38;5;12mRamda[39m[38;5;12m [39m[38;5;12mseems[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mserve[39m[38;5;12m [39m[38;5;12mno[39m[38;5;12m [39m[38;5;12mpurpose[39m[38;5;12m [39m[38;5;12mwhatsoever.[39m[38;5;12m [39m[38;5;12mHowever,[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mdoes[39m[38;5;12m [39m[38;5;12moffer[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mstyle[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcoding,[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mstyle[39m[38;5;12m [39m[38;5;12mthat’s[39m[38;5;12m [39m[38;5;12mtaken[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m
|
||||
[38;5;12mgranted[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mpurely[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguages:[39m[38;5;12m [39m[38;5;12mRamda[39m[38;5;12m [39m[38;5;12mmakes[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12msimple[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbuild[39m[38;5;12m [39m[38;5;12mcomplex[39m[38;5;12m [39m[38;5;12mlogic[39m[38;5;12m [39m[38;5;12mthrough[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mcomposition.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMonads in JavaScript[0m[38;5;12m (https://curiosity-driven.org/monads-in-javascript) – An introduction to the Monad design pattern in JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA[0m[38;5;14m[1m [0m[38;5;14m[1mMonad[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mPracticality:[0m[38;5;14m[1m [0m[38;5;14m[1mFirst-Class[0m[38;5;14m[1m [0m[38;5;14m[1mFailures[0m[38;5;12m [39m[38;5;12m(http://robotlolita.me/2013/12/08/a-monad-in-practicality-first-class-failures.html)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mwalk[39m[38;5;12m [39m[38;5;12mthrough[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mpractical[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mcases[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mspecific[39m[38;5;12m [39m[38;5;12mmonadic[39m[38;5;12m [39m[38;5;12mstructures[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m
|
||||
[38;5;12mJavaScript:[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[48;5;235m[38;5;249mMaybe[49m[39m[38;5;12m [39m[38;5;12mmonad[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhandle[39m[38;5;12m [39m[38;5;12msimple[39m[38;5;12m [39m[38;5;12mfailure[39m[38;5;12m [39m[38;5;12mcases[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmodel[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mcomplex[39m[38;5;12m [39m[38;5;12mscenarios[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[48;5;235m[38;5;249mEither[49m[39m[38;5;12m [39m[38;5;12mmonad[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[48;5;235m[38;5;249mValidation[49m[39m[38;5;12m [39m[38;5;12mapplicative[39m[38;5;12m [39m[38;5;12mfunctor.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional programming[0m[38;5;12m (https://glebbahmutov.com/blog/tags/functional/) – Many articles on various aspects of functional programming in JavaScript by Gleb Bahmutov.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional Programming Jargon[0m[38;5;12m (https://github.com/hemanth/functional-programming-jargon) – Jargon from the functional programming world explained in JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mData[0m[38;5;14m[1m [0m[38;5;14m[1mStructures[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(http://blog.benoitvallon.com/data-structures-in-javascript/data-structures-in-javascript/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mseries[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mblog[39m[38;5;12m [39m[38;5;12mposts[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mreimplements[39m[38;5;12m [39m[38;5;12mvarious[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mstructures[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||||
[38;5;12mbetter[39m[38;5;12m [39m[38;5;12munderstand[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mbenefits[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdownsides.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSo You Want to be a Functional Programmer[0m
|
||||
[38;5;12m (https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536) - Easy to understand, with some examples, introduction to Functional Programming in Javascript and Elm.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional Programming for JavaScript People[0m
|
||||
[38;5;12m (https://medium.com/@chetcorcos/functional-programming-for-javascript-people-1915d8775504) - A complete introduction to functional programming patterns by Chet Corcos with a lot of javascript examples.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mIntroduction to Immutable.js and Functional Programming Concepts[0m
|
||||
[38;5;12m (https://auth0.com/blog/intro-to-immutable-js/) - Learn about functional data structures and their uses in this overview of Facebook's popular library for JavaScript: Immutable.js.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMaster the JavaScript Interview: What is Functional Programming?[0m
|
||||
[38;5;12m (https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0) - A simple introduction by @ericelliott to functional principles and vocabulary.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mComposing[0m[38;5;14m[1m [0m[38;5;14m[1mSoftware[0m[38;5;12m [39m[38;5;12m(https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mseries[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12marticles[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mlearning[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12mcompositional[39m[38;5;12m [39m[38;5;12msoftware[39m[38;5;12m [39m[38;5;12mtechniques[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mES6+[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mground[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12m@ericelliott.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAnonymous Recursion in JavaScript[0m[38;5;12m (https://dev.to/simov/anonymous-recursion-in-javascript) - Short and easy to understand article about implementing anonymous recursion in JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional Composition in Javascript[0m[38;5;12m (https://joecortopassi.com/articles/functional-composition-in-javascript/) – Step by step explanation of how to compose functions in javascript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1mPrinciples[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mJavascript[0m[38;5;12m [39m[38;5;12m(https://medium.freecodecamp.org/functional-programming-principles-in-javascript-1b8fc6c3563f)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mPractical[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mexamples[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mlearn[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mconcepts[39m
|
||||
[38;5;12mlike[39m[38;5;12m [39m[38;5;12mpure[39m[38;5;12m [39m[38;5;12mfunction,[39m[38;5;12m [39m[38;5;12mimmutability,[39m[38;5;12m [39m[38;5;12mfirst-class[39m[38;5;12m [39m[38;5;12mentities,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhigher[39m[38;5;12m [39m[38;5;12morder[39m[38;5;12m [39m[38;5;12mfunctions[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBasic Monads in Javascript[0m[38;5;12m (https://dev.to/rametta/basic-monads-in-javascript-3el3) - Introduction to 2 easy monads in Javascript, Maybe & Either.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mF# for JavaScript Devs[0m[38;5;12m (https://dev.to/rametta/f-for-js-devs-2b88) - Showcasing the similarities between F# and JavaScript[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA practical guide to writing more functional Javascript[0m
|
||||
[38;5;12m (https://medium.com/@nadeesha/a-practical-guide-to-writing-more-functional-javascript-db49409f71) - A step by step guide to convert imperative JavaScript to more declarative, functional JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mYou[0m[38;5;14m[1m [0m[38;5;14m[1mdon't[0m[38;5;14m[1m [0m[38;5;14m[1m(may[0m[38;5;14m[1m [0m[38;5;14m[1mnot)[0m[38;5;14m[1m [0m[38;5;14m[1mneed[0m[38;5;14m[1m [0m[38;5;14m[1mloops[0m[38;5;14m[1m [0m[38;5;14m[1m➿[0m[38;5;12m [39m[38;5;12m(https://github.com/you-dont-need/You-Dont-Need-Loops)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mLoops[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfirst[39m[38;5;12m [39m[38;5;12mconstructs[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mjunior[39m[38;5;12m [39m[38;5;12mprogrammers[39m[38;5;12m [39m[38;5;12mlearn,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mpose[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mpotential[39m[38;5;12m [39m[38;5;12missues[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m
|
||||
[38;5;12msoftware[39m[38;5;12m [39m[38;5;12mdevelopment[39m[38;5;12m [39m[38;5;12mprocess,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcould[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mavoided[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mcases.[39m
|
||||
|
||||
[38;2;255;187;0m[4mVideos[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mClassroom Coding with Prof. Frisby[0m
|
||||
[38;5;12m (https://www.youtube.com/watch?v=h_tkIpwbsxY&list=PLK_hdtAJ4KqX0JOs_KMAmUNTNMRYhWEaC) – A series that builds a “practical” web application with React and functional programming in JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHey Underscore, You're Doing It Wrong![0m[38;5;12m (https://www.youtube.com/watch?v=m3svKOdZijA) – Underscore.js claims to be a functional programming library, but is it really?[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional programming patterns for the non-mathematician[0m[38;5;12m (https://www.youtube.com/watch?v=AvgwKjTPMmM) – Learn about practical use cases for functors, applicatives, and monads.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPure JavaScript[0m[38;5;12m (https://vimeo.com/49384334) – Christian Johansen will show you how you can significantly up your game by leaving loops behind and embracing functions as the primary unit of abstraction.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mprogramming[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/playlist?list=PL0zVEGEvSaeEd9hlmCXrk5yUyqUag-n84)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mseries[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mMattias[39m[38;5;12m [39m[38;5;12mPetter[39m[38;5;12m [39m[38;5;12mJohansson,[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12myoutube[39m[38;5;12m [39m[38;5;12mchannel[39m[38;5;12m [39m[38;5;12mFunFunFunction,[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m
|
||||
[38;5;12mspecifically[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mpopularization[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mTypeScript[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/playlist?list=PLuPevXgCPUIMbCxBEnc1dNwboH6e2ImQo)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mDiscover[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mTypescript[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mfp-ts[39m[38;5;12m [39m[38;5;12malongside[39m[38;5;12m [39m
|
||||
[38;5;12mSahand[39m[38;5;12m [39m[38;5;12mJavid[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mbeginner-friendly[39m[38;5;12m [39m[38;5;12mYouTube[39m[38;5;12m [39m[38;5;12mplaylist.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAnjana Vakil: Learning Functional Programming with JavaScript - JSUnconf 2016[0m[38;5;12m (https://www.youtube.com/watch?v=e-5obm1G_FY) - A simple and understandable introduction of functional proramming in javascript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional Programming Basics In ES6[0m[38;5;12m (https://www.youtube.com/watch?v=FYXpOjwYzcs) - A complete introduction to functional programming in javascript made it easy by ES6.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJavaScript Programmers Should Learn Algebraic Data Types -- May 2018 -- UtahJS Lehi[0m
|
||||
[38;5;12m (https://www.youtube.com/watch?v=B0VoyujJWIE) - Seth House explains how ADTs (Algebraic Data Types) can be useful to JavaScript developers.[39m
|
||||
|
||||
[38;2;255;187;0m[4mExamples and Exercises[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFPJS-Class[0m[38;5;12m (https://github.com/loop-recur/FPJS-Class) – Functional Programming learned through JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfunctional-javascript-workshop[0m[38;5;12m [39m[38;5;12m(https://github.com/timoxley/functional-javascript-workshop)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mgoal[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mworkshop[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12mrealistic[39m[38;5;12m [39m[38;5;12mproblems[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12msolved[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mterse,[39m[38;5;12m [39m[38;5;12mvanilla,[39m[38;5;12m [39m[38;5;12midiomatic[39m[38;5;12m [39m
|
||||
[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mteach[39m[38;5;12m [39m[38;5;12mfundamental[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mfeatures[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mJavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mfunctional-frontend-architecture[0m[38;5;12m (https://github.com/paldepind/functional-frontend-architecture) – A functional frontend framework. Based on Ramda + union-type-js + Flyd + Snabbdom[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mcube-composer[0m[38;5;12m (https://github.com/sharkdp/cube-composer) – A puzzle game inspired by functional programming.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFP Youtube Search[0m[38;5;12m (https://github.com/jaysoo/example-fp-youtube-search) – YouTube search app with ReactJS, Redux, and FP concepts[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHardcore[0m[38;5;14m[1m [0m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mJavaScript[0m[38;5;12m [39m[38;5;12m(https://frontendmasters.com/courses/functional-javascript/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mLearn[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mapply[39m[38;5;12m [39m[38;5;12mtechniques[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mforefront[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcomputer[39m[38;5;12m [39m[38;5;12mscience[39m[38;5;12m [39m[38;5;12mresearch[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msolve[39m[38;5;12m [39m[38;5;12mpractical[39m[38;5;12m [39m
|
||||
[38;5;12mproblems[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mJavascript.[39m[38;5;12m [39m[38;5;12mDiscover[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msee[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mdemonstrated[39m[38;5;12m [39m[38;5;12mstep-by-step[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbuild[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mexample[39m[38;5;12m [39m[38;5;12mweb[39m[38;5;12m [39m[38;5;12mapp[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mabstract[39m[38;5;12m [39m[38;5;12minterfaces[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mMonads,[39m[38;5;12m [39m[38;5;12mFunctors,[39m[38;5;12m [39m[38;5;12mMonoids[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mApplicatives.[39m[38;5;12m [39m
|
||||
[38;5;12m(_commercial_)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEscape from Callback Mountain[0m
|
||||
[38;5;12m (https://github.com/justsml/escape-from-callback-mountain) - Design & refactoring tips for Promise-based Functional JavaScript. Key benefits include better readability, testability, and reusability. MIT.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLearn Rx[0m[38;5;12m (http://reactivex.io/learnrx/) – A series of interactive exercises introducing five basic ingredients of functional (reactive) programming: the [39m[48;5;235m[38;5;249mmap[49m[39m[38;5;12m, [39m[48;5;235m[38;5;249mfilter[49m[39m[38;5;12m, [39m[48;5;235m[38;5;249mconcatAll[49m[39m[38;5;12m, [39m[48;5;235m[38;5;249mreduce[49m[39m[38;5;12m, and [39m[48;5;235m[38;5;249mzip[49m[39m[38;5;12m functions.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHoldem Evaluator[0m[38;5;12m (https://github.com/laberin/holdem-eval) - Yet another Holdem Evaluator with Ramda functional style[39m
|
||||
|
||||
[38;2;255;187;0m[4mCommunity[0m
|
||||
|
||||
[38;2;255;187;0m[4mRelated Lists[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAwesome FRP JS[0m[38;5;12m (https://github.com/stoeffel/awesome-frp-js) – A curated list of awesome (functional) reactive programming stuff in JavaScript.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mlucasviola/Awesome Functional Programming[0m[38;5;12m (https://github.com/lucasviola/awesome-functional-programming) – Awesome resources on functional programming theory and learning materials.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mxgrommx/Awesome Functional Programming[0m
|
||||
[38;5;12m (https://github.com/xgrommx/awesome-functional-programming) – A ton of articles on functional programming, as well as a huge list of functional libraries for many programming languages.[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional Programming Resources In JavaScript[0m[38;5;12m (https://github.com/busypeoples/functional-programming-javascript)[39m
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mtk-learning-center/Functional Programming Learning Path[0m[38;5;12m (https://github.com/tk-learning-center/functional-programming-learning-path) - A Learning Path for Functional Programming[39m
|
||||
|
||||
[38;2;255;187;0m[4mTalk[0m
|
||||
|
||||
[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFunctional Programming Slack channel[0m[38;5;12m (https://fpslack.com/) – Community with a friendly channel for JavaScript as well as many other channels about functional programming in general.[39m
|
||||
|
||||
|
||||
[38;2;255;187;0m[4mContribution[0m
|
||||
|
||||
[38;5;12m:star: Suggestions and PRs are welcome! :star:[39m
|
||||
|
||||
[38;5;12mPlease read the [39m[38;5;14m[1mcontribution guidelines[0m[38;5;12m (./contributing.md) to get started.[39m
|
||||
|
||||
[38;2;255;187;0m[4mLicense[0m
|
||||
|
||||
[38;5;14m[1m![0m[38;5;12mCC0[39m[38;5;14m[1m (http://i.creativecommons.org/p/zero/1.0/88x31.png)[0m[38;5;12m (http://creativecommons.org/publicdomain/zero/1.0/)[39m
|
||||
|
||||
[38;5;12mTo the extent possible under law, [39m[38;5;14m[1mChristoph Hermann[0m[38;5;12m (http://stoeffel.github.io/) has waived all copyright and related or neighboring rights to this work.[39m
|
||||
Reference in New Issue
Block a user