34

The Libraries

  • Low Dash Underscore inspired, fixes lots of stuff apparently, great API Apparently it was so inspired by underscore that its also doing it wrong!
  • fn.js Currently under 1.0 but great documentation, basic functions
  • Bilby.js Created by Brian Mckenna, a guy who is/was developing a functional language that compiled into JavaScript. Seems to have a core functional programming concepts. Edit: Bilby seems to be compliant with the Fantasy Land specification.
  • Fantasy Land Fantasy land not only includes tons of functional programming modules, it also includes a formal specification on how to implement "algebraic structures" (aka your objects) to be compatible with the library. It would be great to have this as a standard. Virtually no documentation (or I couldn't find it).
  • Functional JavaScript One (if not) the first functional programming library for JavaScript, seems pretty outdated but does great stuff.
  • Wu.js Don't know much about it, but Lonsdorf used its autoCurry a lot in older videos.
  • Pointfree Fantasy A collection of functions from the fantasy library wrapped Lonsdorf to a pointfree style (whatever that means).

    Added
  • Folktale A young but VERY promising project with tons of modules. As it's name suggest its inspired and implements the Fantasy Land specification for algebraic structures. Its documentation is shallow but its better than fantasy land's.

The Problem

I want a consistent library that enables me to do these kind of tricks easily, focuses on high level functional concepts (functors, monoids, monads, lenses, etc) and won't abandon development.

What would be my best choice right now?

Notes

  1. Underscore is not included because it's doing it wrong! although I used it as a tag because the other libraries don't have tags.
Cristian Garcia
  • 9,630
  • 6
  • 54
  • 75
  • 89
    Functional libraries don't have any current state. – Dave Newton May 11 '14 at 23:50
  • Ok...Functional joke? – Cristian Garcia May 11 '14 at 23:54
  • 4
    I think this is a great question. It would be nice to have some discussion on this topic. – Jon49 May 13 '14 at 22:40
  • I know the question itself is not "atomic" but someone with knowledge on these libraries (and functional programming itself) would help a lot those who seek this style. – Cristian Garcia May 14 '14 at 08:10
  • I think if there was a living project with a big community, you would know it. Most of these seem to be discontinued. I could throw in a few others from my bookmarks ([wu](http://fitzgen.github.io/wu.js/), [fun](http://fogus.github.io/lemonad/), [allong](https://github.com/raganwald/allong.es), [eweda](https://github.com/CrossEye/eweda)). – Bergi May 14 '14 at 09:38
  • Lazy.js. Favors a similar functional style as wu.js but it's documentation is much better. It's also larger but newer than wu.js – Dan Mantyla Oct 26 '14 at 21:47
  • 27
    [Ramda](https://github.com/ramda/ramda) is also worth taking a look at. – paldepind Oct 30 '14 at 08:22
  • IMO this is a great question!! Which then begs the question where in SO is it appropriate to ask a question like this. – Naruto Sempai Jan 14 '15 at 18:33
  • 3
    https://github.com/lodash/lodash-fp – Mims H. Wright Apr 15 '15 at 00:36
  • 1
    The [RxJS](https://github.com/Reactive-Extensions/RxJS) library is used by some major players and actively mantained. [flyd](https://github.com/paldepind/flyd) is a new kid on the block, that looks promising too. – Lukas Bünger May 03 '15 at 10:19
  • Ramda is under very active development and lodash now has a -fp flavor. Between Ramda, pointfee-fantasy wrappers, and the various fantasyland projects, there's a lot of active stuff to dig into nowadays, much of it even suitable for production. – Dtipson Feb 16 '16 at 19:56
  • I think functional Paradigm is awesome and makes much more sense than OOP cause Javascript was not designed to be OO. The most popular books in this era are suggesting https://github.com/ramda/ramda, so go for it, – Farzad Yousefzadeh Oct 16 '16 at 11:18

0 Answers0