Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Functional programming Open-Source Projects
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
scala
Scala 2 compiler and standard library. Bugs at https://github.com/scala/bug; Scala 3 at https://github.com/scala/scala3
-
milewski-ctfp-pdf
Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source
-
Javaslang
vʌvr (formerly called Javaslang) is a non-commercial, non-profit object-functional library that runs with Java 8+. It aims to reduce the lines of code and increase code quality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Lodash is a widely used utility library in JavaScript, providing a range of helpful functions to simplify common programming tasks. One of the functions provided by Lodash is _.shuffle(), which is specifically designed to shuffle the elements of an array.
Not too far behind is Underscore.js, another utility library that's all about enhancing your JavaScript mojo. Whether you're dealing with arrays, objects, or strings, Underscore has got something for you. It's like Lodash's sibling, offering similar functionalities but with its own flair. The choice between them is like picking between chocolate and vanilla - it really comes down to personal taste.
JavaScript is great for point-free programming! Make sure you check out Ramda.js https://ramdajs.com/
It’s fun in the sense that solving a puzzle is fun, but I avoid it for anything I need to maintain long-term.
But it’s good practice for understanding combinators which is useful for some kinds of problems.
Project mention: Mostly adequate guide to Functional Programming (in JavaScript) | news.ycombinator.com | 2023-07-25
Repository: getify/Functional-Light-JS
Once you’re finished, we’re going to set up a lichess bot account. Head over to https://lichess.org/ and create a new account.
Funnily enough this is (was?) used by the Scala collection library's TreeSet/TreeMap, for fast performance of the `take` and `drop` operations. This is a red-black tree though, not a B-Tree.
Commit https://github.com/scala/scala/pull/82/commits/b7e671446892c... of PR https://github.com/scala/scala/pull/82
Project mention: OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computers | news.ycombinator.com | 2024-04-28
Project mention: reflect-cpp - Now with compile time extraction of field names from structs and enums using C++-20. | /r/cpp | 2023-12-09Category Theory for Programmers by Bartosz Milewski (https://github.com/hmemcpy/milewski-ctfp-pdf/releases)
Project mention: The problem with new URL(), and how URL.parse() fixes that | news.ycombinator.com | 2024-05-19You might be interested in `fp-ts` (and the related `io-ts`).
https://gcanti.github.io/fp-ts/
https://gcanti.github.io/io-ts/
In my case Cycle JS (https://cycle.js.org) was very enlightenment and pedagogic. It make me realize that software is always and only a matter of data transformation. And those pure data transformations can be keep separated and decoupled from "side effects".
You probably noticed that .SetName() returns a Either. You may have come across Unit in libraries like MediatR or Language-Ext. It's a simple construct representing a type with only one possible value. We use it as a placeholder for operations that do not return a value but may return another state. In our example, .SetName() is a Command that does not return a value but may fail. Therefore, the monad Either carries two possible states: Right (without value) or Left (with an Error).
Functional programming related posts
-
LunarML – The Standard ML compiler that produces Lua/JavaScript
-
The problem with new URL(), and how URL.parse() fixes that
-
How to shuffle an array in JavaScript
-
Jank programming language – Clojure/LLVM/C++
-
How to set up a new project using Yarn
-
OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computers
-
Arrow Project for Arrow on GitHub
-
A note from our sponsor - InfluxDB
www.influxdata.com | 23 May 2024
Index
What are some of the best open-source Functional programming projects? This list will help you:
Project | Stars | |
---|---|---|
1 | lodash | 59,011 |
2 | underscore | 27,245 |
3 | ramda | 23,611 |
4 | mostly-adequate-guide | 23,217 |
5 | functional-programming-jargon | 18,545 |
6 | Functional-Light-JS | 16,507 |
7 | lila | 14,678 |
8 | scala | 14,280 |
9 | nix | 11,122 |
10 | milewski-ctfp-pdf | 10,784 |
11 | fp-ts | 10,534 |
12 | Cycle.js | 10,234 |
13 | ios-oss | 8,372 |
14 | fish-redux | 7,341 |
15 | RxKotlin | 7,002 |
16 | language-ext | 6,207 |
17 | lazy.js | 6,026 |
18 | AlgoXY | 5,999 |
19 | Kategory | 5,992 |
20 | android-oss | 5,738 |
21 | Javaslang | 5,545 |
22 | bash-oo-framework | 5,540 |
23 | Carp | 5,393 |
Sponsored